Как возобновлять процесс при падении?

Порой в ubuntu server 16.04 падает процесс, который должен работать постоянно.
дабы не отслеживать его работу 24/7, скажите, можно как-то сделать так, чтоб при падении автоматически убунту запускал этот процесс?

поподробнее: процесс /usr/bin/java -server -Xmx5200M -Xms2048M -jar minecraft_server.1.12.2.jar nogui может упасть. при его падении хотелось бы, чтобы автоматически воспроисзводилась эта же команда и поднимался сервер
но не от root пользователя, а от имени другого пользователя.
скажите, можно это реализовать?
  • Вопрос задан
  • 656 просмотров
Пригласить эксперта
Ответы на вопрос 2
@protven
Можно с помощью systemd (имхо, самое верное). Можно внешний watchdog написать, можно по крону раз в минуту проверять есть ли процесс, и если его нет, то стартовать.

Гуглите "systemd minecraft", там прямо готовые конфиги есть, под ваши хотелки.
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Используйте systemd! Пишете простой файл-сервис, в котором определяете и пользователся, и каталог, еще можно и в cgroups все это загнать, и отдельный каталог сделать.
Создаете файл /lib/systemd/system/minecraft.service
[Unit]
Description=Gunicorn Site
#Requires=gunicorn.socket
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/opt/gunicorn
ExecStart=/opt/venv/bin/gunicorn -w 4 --bind localhost:8000 wsgi:app
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=no

[Install]
WantedBy=multi-user.target

В ExecStart прописываете свое /usr/bin/java ....
User и Group - пользователь и группа
Далее
systemctl start minecraft
systemctl enable minecraft
systemctl status minecraft
systemctl stop minecraft
systemctl disable minecraft

За чтением документации по systemd - сюда
https://www.freedesktop.org/software/systemd/man/s...
https://habrahabr.ru/post/275645/
https://habrahabr.ru/company/southbridge/blog/255845/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы