これにはシャットダウン/再起動時にスクリプトを実行する多くのソリューションがありますが、私のスクリプトはシャットダウン時にのみ実行したいと思います。
スクリプトを/usr/lib/systemd/systemd-shutdownに入れて、示されているように$ 1パラメータを確認してみました。ここしかし、うまくいきません。
どんなアイデアがありますか?
システム: gnome-shell を含む Archlinux
$systemctl --version
systemd 229
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN
ベストアンサー1
ついにこれを行う方法を見つけました。
少し古い時代のアイデアですが、効果があります。
私はこのスレッドの一部を使用しました:https://stackoverflow.com/questions/25166085/how-can-a-systemd-control-service-distinguish- Between-shutdown-and-reboot
そしてこのスレッドは: シャットダウンする前にsystemdを使用してスクリプトを実行する方法は?
このサービスを作成しました/etc/systemd/system/shutdown_screen.service
[Unit]
Description=runs only upon shutdown
Conflicts=reboot.target
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/bin/bash /usr/local/bin/shutdown_screen
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
終了/再起動/停止/何でも実行されます。 (有効にすることを忘れないでください)
私のスクリプトに/usr/local/bin/shutdown_screen
以下を追加しました。
#!/bin/bash
# send a shutdown message only at shutdown (not at reboot)
/usr/bin/systemctl list-jobs | egrep -q 'reboot.target.*start' || echo "shutdown" | nc 192.168.0.180 4243 -w 1
これにより、画面が消える終了メッセージがArduinoに送信されます。