Я пытаюсь использовать скрипт из
init.d
[…]Не запускайте скрипты из
/etc/init.d/
напрямую.В операционных системах systemd нет никакой гарантии, что эти сценарии вообще существуют, не говоря уже о том, что они определяют вашу службу. Даже в Debian 7 были модули systemd, заменяющие сценарии System 5
rc
; и это в большей степени относится к Debian 8. Правильные команды для использования:
systemctl
с егостатусом
,start
,stop
,включить
иотключить
подкомандыservice
update-rc.d
иinvoke-rc.d
, но только если вы сценарий сопровождающего пакетаИменно это и происходит с вами. Ваш прямой вызов сценария заменяется через ловушку внутри широко используемой библиотеки функций сценариев Debian с вызовом (в данном конкретном случае)
systemctl restart parstart.service. Вы даже можете увидеть это в выводе перед вами. Это то, что означает
(через systemctl): parstart.service
. И очевидно, что далек от того, чтобы сообщить systemd о перезапуске службы.Интерактивные навороты внутри вашего
rc
скрипта, включая цветные сообщения, больше не действуют. Ваша служба не запускается как дочерний процессsystemctl
. Он запускается как дочерний процессsystemd
и не имеет никакого соединения с терминалом, на котором вы интерактивно выполняете команды.Все это
/ etc / szarp / parstart.В любом случае создание шаблонов cfg
и создание сообщений журнала для systemd совершенно не требуется. systemd предоставляет межсервисные механизмы для включения и отключения служб, а также для их автоматического перезапуска. Он регистрирует, когда запускает и останавливает службы, при этом службы не должны делать это. По моим подсчетам, этот скриптrc
довольно просто заменить 16 обычными модулями.service
, по одному для каждой службы. Вот как это выглядит:[Unit] Description=The SZARP pserver-lite server After=network.target [Service] Type=simple ExecStart=/usr/local/bin/pserver-lite --no-daemon [Install] WantedBy=multi-user.targetНазовите это
/usr/local/etc/systemd/system/pserver-lite.service
, запуститеsystemctl daemon-reload
и…
- ... информация о состоянии доступна с помощью
systemctl status pserver-lite.service
.- … вы включаете его для запуска при начальной загрузке с помощью
systemctl enable pserver-lite.service
.- … вы можете увидеть записи журнала systemd для запуска и остановки с помощью
journalctl
.Это довольно просто для остальных 15.
Дополнительная литература
- https://unix.stackexchange.com/a/233840/5132
- Стивен Уэдли (2014). «8. Управление службами с помощью systemd» Руководство системного администратора Red Hat Enterprise Linux 7 . Красная шляпа.
- Леннарт Поеттеринг (2013-10-07).
systemctl
. справочные страницы systemd. freedesktop.org.
sed 's/;/:[/' file
{"100K":["0.00001";"10";"0.01"]}
{"101K":["0.0001";"100";"0.1"]}
{"102K":["1";"1000";"1"]}
{"102K":["1";"1000";"1"]}
{"103K":["0.01";"10000";"10"]}
{"104K":["0.1";"100000";"100"]}
{"105K":["1";"1000000";"1000"]}
{"109K":["0.000001";"1";"1"]}
{"120K":["0.000012";"12";"12"]}
Вы также можете попробовать две команды ниже:
perl -pne "s/;/:[/" filename
sed 's/;/:[/1' filename
Выход:
{"100K":["0.00001";"10";"0.01"]}
{"101K":["0.0001";"100";"0.1"]}
{"102K":["1";"1000";"1"]}
{"102K":["1";"1000";"1"]}
{"103K":["0.01";"10000";"10"]}
{"104K":["0.1";"100000";"100"]}
{"105K":["1";"1000000";"1000"]}
{"109K":["0.000001";"1";"1"]}
{"120K":["0.000012";"12";"12"]}