Ubuntu 16.04 - поддерживайте приложение x86_64

У меня есть очень (казалось бы) простой вопрос о том, как сохранить приложение 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 ", он дает ошибку, в которой он жалуется, что служба перезагрузилась - я попытался изменить ее на простое, но это не помогло - что мне делать?

0
задан 7 January 2018 в 00:36

2 ответа

Ваши действия были правильными до сих пор. Я бы рекомендовал установить разрешения для 644, поскольку служебный файл не должен быть исполняемым. Вы также должны запустить systemctl daemon-reload, чтобы выбрать новый файл .service. Если вы вносите изменения в этот файл, вам также нужно выполнить эту команду, чтобы забрать изменения.

Чтобы перезапустить службу, вы можете добавить параметр Restart в раздел [Service].

... [Service] ... Restart=on-failure ...

Вы также можете добавить параметр следующим образом, чтобы контролировать интервал между попытками перезапуска. По умолчанию это 100ms.

RestartSec=

Подробнее см. man systemd.service.

0
ответ дан 17 July 2018 в 23:44

Ваши действия были правильными до сих пор. Я бы рекомендовал установить разрешения для 644, поскольку служебный файл не должен быть исполняемым. Вы также должны запустить systemctl daemon-reload, чтобы выбрать новый файл .service. Если вы вносите изменения в этот файл, вам также нужно выполнить эту команду, чтобы забрать изменения.

Чтобы перезапустить службу, вы можете добавить параметр Restart в раздел [Service].

... [Service] ... Restart=on-failure ...

Вы также можете добавить параметр следующим образом, чтобы контролировать интервал между попытками перезапуска. По умолчанию это 100ms.

RestartSec=

Подробнее см. man systemd.service.

0
ответ дан 24 July 2018 в 17:05
  • 1
    спасибо Томас за ваш быстрый ответ! проблема заключается в том, что служба не появляется при наборе службы --status-all (даже после перезагрузки или перезагрузки systemctl-reload) - на приведенном выше снимке экрана вы можете видеть, что по какой-либо причине файл выглядит по-другому, не уверен, потому что я использую окна - я пытался редактировать и загружать его на OSX, но то же самое – Yuriy Nikshych 6 January 2018 в 17:51
  • 2
    Вы должны использовать systemctl [status|start|stop|reload...] для управления и настройки службы. service устарел с Ubuntu 16.04. – Thomas 6 January 2018 в 17:59
  • 3
    Хорошо, я попытался запустить его, но он говорит «недопустимый аргумент». : root @ server1: ~ # systemctl start mmo.service Не удалось запустить mmo.service: Unit mmo.service не загружен должным образом: Недопустимый аргумент. server1.nwg.website systemd [1]: mmo.service: служба имеет предупреждение о перезагрузке: журнал был повернут с момента запуска устройства. Выход журнала - это неполные строки 1-7 / 7 (END) ... пропуски ... * mmo.service - запускает mmo Loaded: error (Причина: неверный аргумент) Active: failed (Result: signal) с Thu 2018-01 -04 02:48:53 UTC; 2 дня назад – Yuriy Nikshych 6 January 2018 в 18:05
  • 4
    (Я обновил сервис и добавил код Restart = on-failure - я обновил исходное сообщение, чтобы отразить это) – Yuriy Nikshych 6 January 2018 в 18:08
  • 5
    Каков результат работы systemctl status mmo и journalctl -u mmo? – Thomas 6 January 2018 в 19:22

Другие вопросы по тегам:

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