Назад | Перейти на главную страницу

Как использовать crontab для запуска сеанса экрана?

Я хочу создать запись crontab, чтобы она запускала экран, запускала игровой сервер и отключалась. Это на случай, если сервер перезагружается, и я хочу, чтобы он автоматически запускал это для меня.

0 0 0 0 0 (команда)

должен запускаться при запуске.

Он запускает файл оболочки, расположенный в ~ / cube / server.sh

Примерно так должно работать. В этом примере создается экран и выполняется "сверху":

screen -d -m top

В вашем crontab, как указано, вы хотите сделать что-то вроде этого:

@reboot /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver

Конечно, если для игрового сервера требуется "нормальный" набор окружений, вы можете приблизиться:

@reboot (. ~/.profile; /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver)

Этого должно быть достаточно ... беги

$ crontab -e

Затем введите:

@reboot screen -dmS Victor

Для полноты картины также можно использовать tmux с целью вместо screen (видеть эта ссылка для сравнения):

@reboot tmux new-session -d -s yourNameOfTheSession "your command to run"

У меня была похожая ситуация, но из-за других необоснованных ограничений я не мог использовать crontab. У меня действительно был экран вызова inittab. (заменены некоторые имена на непонятную информацию):

XXX:5:respawn:/bin/su - useraccount -c "screen -D -m -c /home/xxxxxx/file.screenrc"

В файле 'file.screenrc' я настраиваю несколько параметров:

sessionname obscuresessionname
multiuser on
cd
screen /home/xxxxxxx/programtostart

Таким образом, он запускается при загрузке, и если программа умирает или экран закрывается, он снова появляется. Возможно, это не считалось обычным, но мне пришлось обойти несколько странных требований к среде. Если бы нам нужно было его отключить, нам пришлось бы закомментировать эту строку и убить сеанс. Затем, когда будете готовы вернуть его, раскомментируйте и запустите q.