Как выполнить пользовательскую команду или скрипт в разделе «Установка» файла службы systemd?

Я создаю специальный скрипт службы systemd, который отлично работает. Однако я хотел бы выполнить собственный скрипт, когда:

sudo systemsctl enable myservice.service

выполняется.

Возможно ли это?

0
задан 13 June 2017 в 19:18

3 ответа

Как указано в man systemd.unit, нет возможности запуска пользовательских команд при включении службы. Возможны альтернативные варианты:

Создайте простой скрипт bash, который запускает команду enable в одной строке и ваш клиентский скрипт во второй строке. Создайте другие части вашей системы, чтобы она срабатывала, когда действие запускается с помощью службы started вместо enabled. Такие директивы, как ExecStartPre= и ExecSTartPost=, могут помочь в этом.
0
ответ дан 22 May 2018 в 21:35
  • 1
    Какое дрянное конструктивное решение. благодаря – Darko Miletic 13 June 2017 в 20:38
  • 2
    Действия по установке существенно создают символические ссылки, так же как update-rc.d управляет символическими ссылками для управления тем, что выполняется при загрузке с помощью SysV init. Каков прецедент для выполнения некоторых других действий в enable -time в отличие от времени службы start? – Mark Stosberg 13 June 2017 в 21:29
  • 3
    Я хотел сделать что-то, когда сервис был включен, чтобы обеспечить его правильную работу. Я понимаю, что это можно сделать и с таможней, которая, вероятно, будет мне в любом случае. – Darko Miletic 14 June 2017 в 19:32

Как указано в man systemd.unit, нет возможности запуска пользовательских команд при включении службы. Возможны альтернативные варианты:

Создайте простой скрипт bash, который запускает команду enable в одной строке и ваш клиентский скрипт во второй строке. Создайте другие части вашей системы, чтобы она срабатывала, когда действие запускается с помощью службы started вместо enabled. Такие директивы, как ExecStartPre= и ExecSTartPost=, могут помочь в этом.
0
ответ дан 18 July 2018 в 11:43

Как указано в man systemd.unit, нет возможности запуска пользовательских команд при включении службы. Возможны альтернативные варианты:

Создайте простой скрипт bash, который запускает команду enable в одной строке и ваш клиентский скрипт во второй строке. Создайте другие части вашей системы, чтобы она срабатывала, когда действие запускается с помощью службы started вместо enabled. Такие директивы, как ExecStartPre= и ExecSTartPost=, могут помочь в этом.
0
ответ дан 24 July 2018 в 19:50

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

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