В XML службы Solaris
Я использую kill, чтобы сигнализировать о корректном завершении работы
<exec_method type="method" name="stop" exec=":kill" timeout_seconds="60" />
Это прекрасно работает, за исключением того факта, что он также убивает дочерние процессы, которые в основном просто умирают после SIGTERM. Любой из них будет работать
exec="kill -SIGUSR1 $PID"
Я бы предпочел не создавать отдельный скрипт, который должен выяснить pid. Я сделаю это, если понадобится. Я бы предпочел получить его из переменной окружения или использовать встроенную команду SMF.
exec=":kill -USR1"
делает свое дело. Без SIG
.
Я искал это при определении method="refresh"
. Джперкин меня прямо наставил своим примером exec=":kill -HUP"
, тогда как на SmartOS с использованием exec=":kill -SIGHUP"
привело к "/sbin/sh[1]: exec: :kill: not found"
.
Это связано с тем, что и родитель, и ребенок имеют один и тот же контракт («мужской контракт» для получения дополнительной информации).
Используйте «ctrun» («man ctrun» для получения дополнительной информации), это создаст дочерний процесс с другим контрактом. Это предотвратит убийство ребенка, когда убивают родителя.
Уверен, ты можешь просто сделать exec="kill -SIGUSR1"
.