Входная команда на фоновую службу

У меня есть служба поддержки, работающая в фоновом режиме за пользовательским gmod игровым сервисом. Я записал свой собственный gmod.service файл поэтому теперь, я могу запустить, он с сервисом gmod запускается. Вы видите его ниже. Действительно ли возможно ввести команду на ту службу от терминала или сценария удара, таким образом, я могу изменить карту, например?Заранее спасибо

[Unit] 
Description=Gmod server 
After=network.target 
[Service] 
Type=simple 
ExecStart=/bin/bash /home/server/Documents/Servers/Gmod/run_gmod.sh 
[Install] 
WantedBy=multi-user.target
2
задан 27 May 2018 в 14:32

1 ответ

Используйте systemd шаблонные файлы единицы

Это - хороший пример для того, когда systemd шаблоны единицы могут использоваться. Возможно иметь systemd сервис, который будут называть с аргументом и будет использовать тот аргумент в сервисном определении, например, вручать его программе, которая запущена. Вот пример для Вашего случая:

Установите свою единицу как

/etc/systemd/system/gmod@.service

Измените файл для сходства с этим:

[Unit] 
Description=Gmod server (map: %I)
After=network.target 
[Service] 
Type=simple 
ExecStart=/bin/bash /home/server/Documents/Servers/Gmod/run_gmod.sh %i
[Install] 
WantedBy=multi-user.target
DefaultInstance=myDefaultMap

(Вы, возможно, должны были бы работать systemctl daemon-reload в этой точке, чтобы заставить systemd считать измененный файл). После этого Вы сможете запустить gmod с аргумента как это:

systemctl start gmod@myMapName.service

Systemd будет использовать шаблонный файл и замену I% с аргументом, и %i с заключенным в кавычки аргументом оболочки затем запустите его как услуга названный экземпляр gmod@myMapName.service. Можно проверить это путем выполнения

systemctl status gmod@myMapName

У Вас может также быть он автоматически запуск экземпляра по умолчанию во время начальной загрузки как это:

systemctl enable gmod@

Таким образом, Вы могли даже запустить несколько экземпляров gmod, если программа позволяет это. Поскольку дополнительные материалы для чтения по теме проверяют systemd.unit (5) страница руководства.

3
ответ дан 2 December 2019 в 02:43

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

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