シャットダウンの直前と[install]
が破棄される前にsystemdが/home/me/so.pl
を実行できるように、/proc/self/net/dev
セクションに何を入れる必要がありますか?
[Unit]
Description=Log Traffic
[Service]
ExecStart=/home/me/so.pl
[Install]
?
推奨される解決策は、サービスユニットを通常のサービスとして実行することです。[Install]
セクションをご覧ください。したがって、すべてを逆に考える必要があります。依存関係も同様です。シャットダウンの順序が逆の起動順序だからです。そのため、スクリプトはExecStop=
に配置する必要があります。
次の解決策が私のために働いています:
[Unit]
Description=...
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=<your script/program>
[Install]
WantedBy=multi-user.target
ExecStart
アクションがない場合は、RemainAfterExit=true
が必要です。
ファイルを作成したら、必ずsystemctl daemon-reload
およびsystemctl enable yourservice --now
を使用してください。
Systemd IRCから取得しました。クレジットはメスカレロに送られます。
私が見る限り、これは私が必要とすることを行います(しかし、その理由は正確にはわかりません)。
[Unit]
Description=Log Traffic
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
[Service]
ExecStart=/usr/local/bin/Perl /home/me/log_traffic.pl --stop
Type=oneshot
サービスを実行する開始する直前再起動/シャットダウン/停止/ kexecサービス(つまり、ルートファイルシステムが読み取り専用で再マウントされる前の最後の瞬間)このサービス構成を使用します。
[Unit]
Description=Save system clock on shutdown
DefaultDependencies=no
After=final.target
[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/scripts/fake-hwclock.sh save
[Install]
WantedBy=final.target
それを有効にする:
systemctl enable my_service.service
スクリプトを実行するには実際の直前reboot/shutdown/halt/kexec(ルートファイルシステムに書き込めないため、読み取り専用で再マウントされたため)このスクリプト実行可能ファイルを/usr/lib/systemd/system-shutdown
ディレクトリに追加します。
実際のシステムを実行する直前にhalt/poweroff/reboot/kexec systemd-shutdownはすべての実行可能ファイルを/ usr/lib/systemd/system-shutdown /で実行し、「halt」、「poweroff」、「reboot」のいずれかの引数を渡します選択したアクションに応じて、 "または" kexec "。このディレクトリ内のすべての実行可能ファイルは並行して実行され、すべての実行可能ファイルが終了する前にアクションの実行は継続されません。
こちらもご覧ください:
https://www.freedesktop.org/software/systemd/man/bootup.html
https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
完全にはわかりませんが、明示的に追加したのに、インストールパーツは必要ないと思います。私もそれをテストしませんでしたが、それはあなたが始めるのに役立つはずだと思います:
[Unit]
Description=Log Traffic
Requires=network.target
After=network.target
Before=shutdown.target
DefaultDependencies=no
[Service]
ExecStart=/home/me/so.pl
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=shutdown.target