Как отправить определенный сигнал (SIG) в systemd?

Как отправить определенный сигнал (SIG) в systemd?

Наman-страница systemd, есть раздел, который называетсяСигналы, в котором говорится о различных сигналах и их влиянии на систему.

Например, SIGRTMIN+3перезагружает систему:

СИГРТМИН+3

Останавливает машину, запускает halt.target unit. Это в основном эквивалентно

systemctl start halt.target  --job-mode=replace-irreversibly

и SIGRTMIN+15 немедленно перезагружает машину:

СИГРТМИН+15

Immediately reboots the machine

Страница man не предоставляет эквивалентной команды. Я пробовал использовать

systemd SIGRTMIN+15

но это кажется неправильным, так как я получаю Excess arguments.сообщение об ошибке.

Как мне использовать эти сигналы systemd?

решение1

Во-первых, они не sigterm. Затем вы передаете сигнал, а не аргумент. Для отправки сигналов мы используем kill. Смотрите man kill. Вам нужно указать процесс. systemdвсегда будет запускаться как процесс 1, процесс init.

Поэтому, чтобы отправить SIGRTMIN+15, сделайте sudo kill -SIGRTMIN+15 1.

Однако лучше использовать команду shutdown --poweroff, или shutdown --reboot.

Связанный контент