Как безопасно остановить скрипт при выключении - PullRequest
0 голосов
/ 02 июля 2019

Я провел много времени, оглядываясь без удачи. У меня есть скрипт, работающий и всегда включенный, он запускает цикл while, читая файл поддержки, где написано "TRUE". Когда мне нужно остановить это, я просто запускаю другой скрипт, который пишет «FALSE» в файле поддержки. Таким образом, скрипт может запустить основную процедуру, чтобы остановить ее без каких-либо проблем / ошибок.

Теперь это моя проблема. Мне нужно остановить этот скрипт при выключении, но я не могу это сделать. Я написал служебный файл так:

[Unit]
Description=Disconneting from PLC-SQL
Requires=network.target
DefaultDependencies=no
Before=shutdown.target reboot.target

[Service]
Type=oneshot

RemainAfterExit=true
ExecStop=my script full path

[Install]
WantedBy=multi-user.target

Служба работает отлично, и фактически она записывает «FALSE» в файле поддержки, но основной скрипт просто уничтожается процедурой выключения, как есть, без возможности выполнения требуемых процедур остановки. Насколько я понял, процесс выключения / перезагрузки в любом случае закрывается и сразу же регистрируется весь пользователь, или что-то в этом роде. Таким образом, основной сценарий уничтожается до того, как вспомогательный (который я вызываю при завершении работы) записывает «FALSE» в файле поддержки. Есть способ решить мою проблему? Большое спасибо

...