Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Не работает остановка сервера через systemctl  (Прочитано 32136 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн palka444

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Есть юнит, который запускает файл, который запускает сервер в screen. Команда запуска работает хорошо. Команда stop нет.
Чтобы остановить сервер достаточно в screen написать команду 'stop'. Если команду '/usr/bin/screen -S serverRPG -X stuff 'stop^M'' я пропишу в терминале вручную, то сервер будет выполнять команды для завершения и в итоге screen закроется [screen is terminating]. Однако, если я попытаюсь остановить сервер командой systemctl stop юнит, то сервер получает команду stop(я вижу, что она пришла в терминале) и останавливается сразу, без выполнения команд по завершению. Я сразу получу [screen is terminating]. Что я делаю не так?

[Unit]

Description=Minecraft server RPG
After=multi-user.target

[Service]
ExitType=cgroup
Type=forking
User=home
#WorkingDirectory=/home/palka444/'Server minecraft'/'Server steampunk and RPG'
#ExecStart=/bin/bash '/home/palka444/'Server minecraft'/'Server steampunk and RPG'/start.sh'

ExecStart=/bin/bash '/usr/local/start.sh'

ExecStop=/usr/bin/screen -S serverRPG -X stuff 'stop^M'
ExecStop=/usr/bin/echo "Остановка сервера RPG"
TimeoutStopSec=10

[Install]
WantedBy=multi-user.target
« Последнее редактирование: 18 Июня 2023, 17:05:49 от palka444 »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Нельзя дублировать ExecPost, если у вас Type=forking
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
mc_remote && screen -S "$SESSION" -p "$_mc_window:" -X stuff "$(printf '\b%s\r' "$*")"
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.028 секунд. Запросов: 22.