シャットダウンまたはシャットダウンできないシステム単位ファイルでExecStartPostコマンドを実行する方法

シャットダウンまたはシャットダウンできないシステム単位ファイルでExecStartPostコマンドを実行する方法

システム単位のファイルを作成しようとしています。サービス siad を起動するときに数時間実行またはすぐに完了できる他のコマンド /usr/sbin/clearshare-scheduler.sh を起動したいと思います。これを実行するためにExecStartPostを試しましたが、コマンドが短時間で完了せず、失敗メッセージが表示された場合、systemdはそれを気に入らません。サンプルファイルは次のとおりです。

[Unit]
Description=Siad
After=syslog.target network.target

[Service]
Type=simple
OOMScoreAdjust=500
PIDFile=/var/run/siad.pid
EnvironmentFile=/etc/sysconfig/siad
Environment="SIA_DATA_DIR=/var/lib/siad-data"
ExecStart=/usr/bin/siad $EXTRA_ARGS
ExecStop=/usr/bin/siac stop
WorkingDirectory=/var/lib/sia/
ExecStartPost=/usr/bin/sh -c 'umask 022; /usr/bin/pgrep siad > /var/run/siad.pid'
ExecStartPost=/usr/sbin/clearshare-scheduler.sh

[Install]
WantedBy=multi-user.target

私は「&」を使って背景に入れて始めるためにnohupを使ってみましたが、やはり動作しませんでした。

ベストアンサー1

TimeoutStartSec=以下にテストが追加されました[Service]。すべての起動プロセスに影響します。

https://www.freedesktop.org/software/systemd/man/systemd.service.html#TimeoutStartSec=

おすすめ記事