У меня очень (казалось бы) простой вопрос, как сохранить приложение x86_64 «живым» на сервере Ubuntu. Первоначально и благодаря огромным усилиям (я очень неопытен в Ubuntu / Linux), я смог запустить его при запуске, однако приложение все равно время от времени «умирает».
Я попытался превратить приложение в службу, например, так:
[Unit]
Description=runs the mmo
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/root/mmo/MMO.x86_64
Restart=on-failure
[Install]
WantedBy=multi-user.target
и загрузил его через ftp в «/ etc / systemd / system» на моем сервере и установил разрешения для 777, однако загруженный мною файл (значок) выглядит иначе, чем другие файлы .service, поэтому я думаю, что сделал что-то не так
ссылка на скриншот файла на сервере
(это похоже на текстовый документ, в то время как другие выглядят как ярлыки на папки, хотя я также назвал свой .service)
Что я делаю не так? заранее спасибо
root @ server1: ~ # systemctl status mmo * mmo.service - запускает mmo Loaded: error (Причина: недопустимый аргумент) Active: сбой (Result: signal) с Чт 2018-01-04 02:48:53 UTC; 2 дня назад Основной PID: 757 (код = убит, сигнал = KILL)
Янв 06 13:44:41 server1.nwg.website systemd 1 : mmo.service: служба перезапускается Предупреждение: журнал был повернут с момента запуска устройства. Вывод журнала состоит из неполных строк 1-7 / 7 (END) * mmo.service - запускает mmo Loaded: error (Причина: недопустимый аргумент) Active: сбой (Result: signal) с Чт 2018-01-04 02:48:53 УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ; 2 дня назад Основной PID: 757 (код = убит, сигнал = KILL)
РЕДАКТИРОВАТЬ / прогресс: Теперь можно запустить службу (подробнее в длинных комментариях ниже), однако когда Я пытаюсь добавить «Restart = on-fail», он выдает ошибку, когда жалуется на перезапуск службы - я пытался изменить ее на простой, но это не помогло - что мне делать?
Ваши шаги были правильными до сих пор. Я бы порекомендовал установить разрешения на 644, так как служебный файл не должен быть исполняемым.
Вы также должны запустить systemctl daemon-reload
, чтобы получить новый файл .service
. Если вы вносите изменения в этот файл, вы должны выполнить эту команду, чтобы также получить изменения.
Чтобы перезапустить службу, вы можете добавить опцию Restart
в раздел [Service]
.
...
[Service]
...
Restart=on-failure
...
Вы также можете добавить опцию следующим образом, чтобы контролировать интервал между попытками перезапуска. По умолчанию, кажется, 100ms
.
RestartSec=
Подробнее см. В man systemd.service
.