У меня есть очень (казалось бы) простой вопрос о том, как сохранить приложение 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: failed (Result: signal) с Thu 2018-01- 04 02:48:53 UTC; 2 дня назад Главная PID: 757 (код = убит, signal = KILL)
янв. 06 13:44:41 server1.nwg.website systemd ссылка на скриншот файла на сервере : mmo.service: служба имеет предупреждение о перезагрузке. Журнал был повернут с момента запуска устройства. Выход журнала не соответствует строкам 1-7 / 7 (END) * mmo.service - запускает mmo Loaded: error (Причина: неверный аргумент) Active: failed (Result: signal) с Thu 2018-01-04 02:48:53 УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ; 2 дня назад Главная PID: 757 (код = убит, сигнал = KILL)
EDIT / progress: теперь можно запустить сервис (больше информации в длинном комментарии ниже), однако, когда я пытаюсь добавить " Restart = on-fail ", он дает ошибку, в которой он жалуется, что служба перезагрузилась - я попытался изменить ее на простое, но это не помогло - что мне делать?
Ваши действия были правильными до сих пор. Я бы рекомендовал установить разрешения для 644, поскольку служебный файл не должен быть исполняемым. Вы также должны запустить systemctl daemon-reload, чтобы выбрать новый файл .service. Если вы вносите изменения в этот файл, вам также нужно выполнить эту команду, чтобы забрать изменения.
Чтобы перезапустить службу, вы можете добавить параметр Restart в раздел [Service].
...
[Service]
...
Restart=on-failure
...
Вы также можете добавить параметр следующим образом, чтобы контролировать интервал между попытками перезапуска. По умолчанию это 100ms.
RestartSec=
Подробнее см. man systemd.service.
Ваши действия были правильными до сих пор. Я бы рекомендовал установить разрешения для 644, поскольку служебный файл не должен быть исполняемым. Вы также должны запустить systemctl daemon-reload, чтобы выбрать новый файл .service. Если вы вносите изменения в этот файл, вам также нужно выполнить эту команду, чтобы забрать изменения.
Чтобы перезапустить службу, вы можете добавить параметр Restart в раздел [Service].
...
[Service]
...
Restart=on-failure
...
Вы также можете добавить параметр следующим образом, чтобы контролировать интервал между попытками перезапуска. По умолчанию это 100ms.
RestartSec=
Подробнее см. man systemd.service.