Выполнения Systemd запускают и останавливают команды одновременно на Ubuntu 18.04 - проблемы сервера Minecraft

Обновление:

Все еще наличие этой проблемы. Я замечаю, что моя systemd услуга работает и команды ExecStart и ExecStop последовательно, когда я работаю "systemctl, запускают minecraft.service". Я проверил это от вывода от tmux консоли и systemd состояния, как замечено ниже. Таким образом, это правильно называет mc_server.sh сценарий, но я не могу заставить это прекращать называть команду "ExecStop". Я попытался удалить Тип = устанавливающий (создание его простой по умолчанию), непосредственно изменив Тип на простой, но ни один из них, кажется, не решает проблему.

Исходный вопрос:

Я недавно обновил до 18.04.1 и испытываю затруднения при получении моей Minecraft systemd сервис, работающий снова. Я сделал чистую установку 18,04 от 16,04. Этот сервис работал правильно над 16,04, но теперь это, кажется, не работает. Когда я работаю "systemctl, запускают minecraft.service", это, кажется, запускает скрипт ExecStart и сценарий ExecStop вместе на основе вывода состояния ниже, но я не вижу вывода из сценариев в моей tmux консоли, которую это должно пробегать. Если я называю сценарий запуска вручную, он хорошо работает, таким образом, что-то неправильно в systemd сервисе.

Услуга установлена работать как пользователь Minecraft под группой Minecraft. Все в/srv/minecraft принадлежит пользователю/группе Minecraft. minecraft.service файл принадлежит корню. Все это совпадает с ним, был в 16,04, когда это работало. Сообщите мне, есть ли у Вас какие-либо идеи получить его работающий снова!Спасибо!!

:/etc/systemd/system$ systemctl status minecraft.service
● minecraft.service - Minecraft Server
   Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor 
   preset
   Active: inactive (dead) since Wed 2018-11-14 16:33:25 PST; 3s ago
  Process: 4667 ExecStop=/srv/minecraft/mc_server.sh stop (code=exited, 
  status=0/SUCCESS)
  Process: 4651 ExecStart=/srv/minecraft/mc_server.sh start (code=exited, 
  status=0/SUCCESS)

Nov 14 16:33:11 systemd[1]: Starting Minecraft Server...
Nov 14 16:33:11 mc_server.sh[4651]: Session found.  Connecting.
Nov 14 16:33:11 mc_server.sh[4651]: Minecraft server successfully 
started
Nov 14 16:33:11 mc_server.sh[4667]: step 1 successs
Nov 14 16:33:19 mc_server.sh[4667]: step 2 success
Nov 14 16:33:21 mc_server.sh[4667]: server shutdown success
Nov 14 16:33:25 systemd[1]: Started Minecraft Server.

Вот systemd сценарий:

# Source: https://github.com/agowa338/MinecraftSystemdUnit/
# License: MIT
[Unit]
Description=Minecraft Server
After=network.target auditd.service

[Service]
WorkingDirectory=/srv/minecraft/
# PrivateUsers=true
User=minecraft
Group=minecraft
ProtectSystem=full
ProtectHome=true
# ProtectKernelTunables=true
# Implies MountFlags=slave
# ProtectKernelModules=true
# Implies NoNewPrivileges=yes
# ProtectControlGroups=true
# Implies MountAPIVFS=yes
Type=forking

ExecStart=/srv/minecraft/mc_server.sh start

ExecStop=/srv/minecraft/mc_server.sh stop

Restart=on-abnormal
RestartSec=60s

[Install]
WantedBy=multi-user.target
0
задан 22 November 2018 в 00:32

2 ответа

Хорошо, я понял это. Итак, вот что я сделал, чтобы этот сервис снова заработал.

Директива Add «RemainAfterExit = yes», по-видимому, решает проблему выполнения команды ExecStop сразу после команды запуска. Это немного странно, потому что в 16.04 с такой же настройкой мне не понадобился параметр RemainAfterExit, когда тип был установлен на разветвление. Но, видимо, теперь вам это нужно?

На случай, если у кого-то возникнет подобная проблема, вот мой текущий файл модуля systemd:

# Source: https://github.com/agowa338/MinecraftSystemdUnit/
# License: MIT
[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Group=minecraft

WorkingDirectory=~

Type=simple
RemainAfterExit=yes

PIDFile=/srv/minecraft/minecraft_process.pid

ExecStart=/srv/minecraft/mc_server.sh start

ExecStop=/srv/minecraft/mc_server.sh stop

[Install]
WantedBy=multi-user.target
0
ответ дан 22 November 2018 в 00:32

Это может быть не ваш systemd, но может быть тот сценарий, который он вызывает, у которого возникают проблемы.

/srv/minecraft/mc_server.sh

Вы пытались запустить это напрямую, и это работает?

Обычно это должно работать, так как я не смог увидеть ваш скрипт, вызывающий tmux Вот как это должно выглядеть.

tmux new -s my_session
run your command to start the server
tmux detach
0
ответ дан 22 November 2018 в 00:32

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

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