Armadilloフォーラム

シャットダウンを外部に通知する方法

k.nishijo

2019年5月13日 10時01分

西條と申します。

シャットダウンコマンドでシャットダウン時にポートをたたいて外部に終了を通知した後にPowerOff状態にするということは可能でしょうか?

ご存知の方がいらっしゃいましたらご教示ください。

コメント

溝渕です。

> シャットダウンコマンドでシャットダウン時にポートをたたいて外部に終了を通知した後にPowerOff状態にするということは可能でしょうか?

systemdで、shutdownに依存させたunitを作ってみるとできるかと思います。

systemdの簡単な使い方については、以下のブログを参照してみてください。
https://users.atmark-techno.com/blog/6938/2865

動作確認していませんが、次のようになるのではないかと思います。

[Unit]
Description=Shutdown sample
Before=shutdown.target
DefaultDependencies=no
 
[Service]
Type=oneshot
ExecStart=/path/to/scripts
RemainAfterExit=yes
 
[Install]
WantedBy=shutdown.target

教えていただいた方法でシャットダウン時に処理が動くようになりました。
ありがとうございます。

とりあえずシャットダウンのタイミングでLEDを30秒程度光らせることができたのですが、
このタイミングをぎりぎりまで遅らせたい(LEDの点灯タイミングを短くしたい)場合は、

教えていただいたserviceファイルのBeforeをどのように修正すればいいのでしょうか?

以上よろしくお願いします。

> 溝渕です。
>
> > シャットダウンコマンドでシャットダウン時にポートをたたいて外部に終了を通知した後にPowerOff状態にするということは可能でしょうか?
>
> systemdで、shutdownに依存させたunitを作ってみるとできるかと思います。
>
> systemdの簡単な使い方については、以下のブログを参照してみてください。
> https://users.atmark-techno.com/blog/6938/2865
>
> 動作確認していませんが、次のようになるのではないかと思います。
>
>

> [Unit]
> Description=Shutdown sample
> Before=shutdown.target
> DefaultDependencies=no
> 
> [Service]
> Type=oneshot
> ExecStart=/path/to/scripts
> RemainAfterExit=yes
> 
> [Install]
> WantedBy=shutdown.target
> 

>

溝渕です。

> とりあえずシャットダウンのタイミングでLEDを30秒程度光らせることができたのですが、
> このタイミングをぎりぎりまで遅らせたい(LEDの点灯タイミングを短くしたい)場合は、
>
> 教えていただいたserviceファイルのBeforeをどのように修正すればいいのでしょうか?

なるべく早く起動するユニットに依存させると良いと思います。
# 終了時はたしか逆順に実行されると思いますので

以下のページに記載の内容で、起動順を視覚化できます。

[システムの起動時間を確認する]
https://users.atmark-techno.com/blog/53/3887