/home/steam/Steam/rust_server/startrust.sh: 3: exec: ./RustDedicated: not found [RESOLVIDO]

1. /home/steam/Steam/rust_server/startrust.sh: 3: exec: ./RustDedicated: not found [RESOLVIDO]

Cristiano Lorenzon Mazzotti
cristianomaddog

(usa Debian)

Enviado em 01/05/2021 - 15:34h

Olá pessoal,

Sou novo no fórum e no Linux, estou tentando criar um Servidor dedicado de Rust (Jogo) aqui em casa. Acho que esse erro que estou tendo é coisa básica de resolver, mas não consegui achar a resposta. Acho que não estou usando os termos corretos para a pesquisa.

Segui esse tutorial aqui https://www.rustafied.com/how-to-host-a-rust-server-in-linux

Fiquei com a seguinte estrutura no server:

XXXX@XXXXXXXX:/home/steam/Steam/rust_server# dir
Bundles LinuxPlayer_s.debug RustDedicated_Data UnityPlayer_s.debug runds.sh startrust.sh steamclient.so
HarmonyMods RustDedicated UnityPlayer.so libsteam_api.so server steamapps


Como instruído pelo tutorial, o startrust.sh está na seguinte estrutura

#!/bin/sh
clear while : do
exec ./RustDedicated -batchmode -nographics \
-server.ip IPAddressHere \
-server.port 28015 \
-rcon.ip IPAddressHere \
-rcon.port 28016 \
-rcon.password "rcon password here" \
-server.maxplayers 75 \
-server.hostname "Server Name" \
-server.identity "my_server_identity" \
-server.level "Procedural Map" \
-server.seed 12345 \
-server.worldsize 3000 \
-server.saveinterval 300 \-server.globalchat true \
-server.description "Description Here" \
-server.headerimage "512x256px JPG/PNG headerimage link here" \
-server.url "Website Here"
echo "\nRestarting server...\n" done


Se eu rodar o comando a seguir, o servidor sobe sem problemas e consigo conectar:

XXXX@XXXXXXXX::/home/steam/Steam/rust_server# ./startrust.sh 


Mas se eu rodar conforme abaixo, tenho um erro

XXXX@XXXXXXXX:/#  /home/steam/Steam/rust_server/startrust.sh
Usage: clear [options]

Options:
-T TERM use this instead of $TERM
-V print curses-version
-x do not try to clear scrollback
/home/steam/Steam/rust_server/startrust.sh: 3: exec: ./RustDedicated: not found


Para resolver esse erro, modifiquei o comand exec dentro do startrust.sh para o seguinte

exec ./home/steam/Steam/rust_server/RustDedicated -batchmode -nographics \

Agora, se eu rodar

XXXX@XXXXXXXX:/#  /home/steam/Steam/rust_server/startrust.sh
Usage: clear [options]

Options:
-T TERM use this instead of $TERM
-V print curses-version
-x do not try to clear scrollback
Set current directory to /
Found path: /home/steam/Steam/rust_server/RustDedicated
Mono path[0] = '/home/steam/Steam/rust_server/RustDedicated_Data/Managed'
Mono config path = '/home/steam/Steam/rust_server/RustDedicated_Data/MonoBleedingEdge/etc'
Preloaded 'libRakNet.so'
Preloaded 'libRustNative.so'
eac_server.so [x64] :: OnLoad()
Preloaded 'libeac_server.so'
Preloaded 'libeasyanticheat.so'
Preloaded 'libsteam_api.so'
Preloaded 'libsteam_api.so'
Preloaded 'steamclient.so'
Unable to preload the following plugins:
libRenderer.so
Initialize engine version: 2019.4.22f1 (9fdda2fe27ad)
[Subsystems] Discovering subsystems at path /home/steam/Steam/rust_server/RustDedicated_Data/UnitySubsystems
Forcing GfxDevice: Null
GfxDevice: creating device client; threaded=0
NullGfxDevice:
Version: NULL 1.0 [1.0]
Renderer: Null Device
Vendor: Unity Technologies
Begin MonoManager ReloadAssembly
- Completed reload, in 0.110 seconds
Shader 'TextMeshPro/Distance Field': fallback shader 'TextMeshPro/Mobile/Distance Field' not found
UnloadTime: 15.519143 ms
Bootstrap Startup
Unable to open archive file: Bundles/Bundles
(Filename: Line: 584)

Failed to read data for the AssetBundle 'Bundles'.
(Filename: Line: 450)

Couldn't load root AssetBundle - Bundles/Bundles
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 39)

ThrowError: Couldn't load root AssetBundle - Bundles/Bundles
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 39)


Ao meu entendimento, isso acontece porque RustDedicated está rodando a partir de:
XXXX@XXXXXXXX:/#
e não a partir de
XXXX@XXXXXXXX::/home/steam/Steam/rust_server#
Dessa forma ele não consegue achar os arquivos que estão dentro da pasta rust_server.

Eu preciso rodar a partir de XXXX@XXXXXXXX:/# porque quero que o servidor de rust inicie com o linux. Pra isso usei systemctl conforme https://linuxconfig.org/how-to-automatically-execute-shell-script-at-startup-boot-on-systemd-linux

Para isso criei o startrust.service conforme abaixo

[Unit]
After=network-online.target

[Service]
ExecStart=/home/steam/Steam/rust_server/startrust.sh

[Install]
WantedBy=default.target


Eu tentei adicionar /home/steam/Steam/rust_server ao PATH, mas não funcionou.

Não sei como resolver isso. Desde já agradeço a ajuda

Att.,
Cristiano


  


2. Resposta

Cristiano Lorenzon Mazzotti
cristianomaddog

(usa Debian)

Enviado em 02/05/2021 - 18:04h


Descobri como solucionar o meu problema.

No final das contas a solução foi modificar o arquivo startrust.service

[Unit]
Description=Service that starts the Rust server
After=network-online.target

[Service]
ExecStart=/home/steam/Steam/rust_server/startrust.sh
WorkingDirectory=/home/steam/Steam/rust_server

[Install]
WantedBy=default.target


Adicionando a linha WorkingDirectory=/home/steam/Steam/rust_server eu consegui dizer aonde o serviço deve rodar, dessa forma consigo deixar o startrust.sh da maneira que o tutorial de como subir o servidor diz pra deixar.

#!/bin/sh
clear while : do
exec ./RustDedicated -batchmode -nographics \
-server.ip IPAddressHere \
-server.port 28015 \
-rcon.ip IPAddressHere \
-rcon.port 28016 \
-rcon.password "rcon password here" \
-server.maxplayers 75 \
-server.hostname "Server Name" \
-server.identity "my_server_identity" \
-server.level "Procedural Map" \
-server.seed 12345 \
-server.worldsize 3000 \
-server.saveinterval 300 \-server.globalchat true \
-server.description "Description Here" \
-server.headerimage "512x256px JPG/PNG headerimage link here" \
-server.url "Website Here"
echo "\nRestarting server...\n" done







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts