私の/etc/systemd/system/myshutdown.service
もの
#!/bin/bash
[Unit]
Description=license administration shutdown
DefaultDependencies=no
After=final.target
[Service]
Type=oneshot
ExecStart=/root/scripts/license_administration_shutdown.sh
[Install]
WantedBy=final.target
私は私が始めたそのサービスとそのシステムサービスを殺すためにlicense_administration_shutdown.sh
何かをしました。lmutil lmdown -force
/root/scripts/license_administration.sh
init 6
私の質問は、init 0
終了スクリプトがすぐに実行されることを望むのか、または完了後に最初にすべきことの1つで、上記のシステムサービス構文が正しいことです。私の意図は、lmgrdに責任があると思われるプロセスを終了することです。セッションでジョブの停止が実行されています。警告:シャットダウン/再起動時に1分30秒の不快な遅延が発生します。
init 6
上記のサービスに高い優先順位を付けるか、完了したらすぐに発生させるために追加または変更できる構文はありますか?init 0
答え1
サービスの停止サービスを作成するのではなく、ExecStopPost
ライセンスマネージャサービスにタスクを追加するのが最善の選択肢かもしれません。
ライセンスマネージャがデフォルトの依存関係を使用している場合は、自動的にshutdown.targetと競合します。デフォルトの依存関係を使用しない場合は、Conflicts=shutdown.target
ライセンスマネージャのサービス説明に追加できます。
システムがシャットダウンまたは再起動したときにshutdown.targetを呼び出してこれを行います。これは(ほとんどの場合)実行中のすべてのサービスと自動的に競合します。ライセンスマネージャサービスが停止し、その一部として指定されたコマンドが実行されますExecStopPost=
。