Запуск .sh (screen) скрипта через crontab
Здравствуйте, почему-то не нашёл ничего, что решало бы мою проблему
У меня есть игровой сервер (srcds), он запускается через отдельный скрипт .sh
Я использую Ubuntu 20.04.3 LTS на VDS
Скрипт выглядит вот так:
screen ./srcds_run -параметр запуска 1 -параметр запуска 2 и т.д.
Запускаю я его, логично, через терминал
cd /home/user/steamcmd/game && ./run.sh
Игровой сервер запускается и начинает работать
Я хочу, чтобы в случае перезагрузки сервера скрипт запускался сам. Естественно мне с этим должен помочь crontab.
$ crontab -e
В планировщик я ставлю задание:
@reboot cd /home/user/steamcmd/game && ./run.sh >>/home/user/cronlogs/run.log
Но это почему-то не работает и в логе появляется сообщение об ошибке: Must be connected to a terminal.
Что мне нужно делать чтобы .sh скрипт со screen запускался автоматически, после перезагрузки?
Ответы (1 шт):
Я НАШЁЛ РЕШЕНИЕ! Мне помог ответ отсюда
я исправил свой .sh скрипт, добавив туда -d -m
В итоге скрипт стал выглядеть вот так:
screen -d -m ./srcds_run -параметр запуска 1 -параметр запуска 2 и т.д.
Теперь при запуске у меня не открывается автоматически консоль, а для подключения к ней мне нужно использовать screen -r
После добавления -d -m скрипт стал запускаться автоматически, после перезагрузки
p.s. трое суток потратил на поиск решения и как только задал вопрос, сразу нашёл ответ