
システム単位のファイルを作成しようとしています。サービス 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=
答え2
/usr/sbin/clearshare-scheduler.sh
2番目のサービスには1番目のサービスが必要なので、そのコマンドを追加するだけです。これが役立つことを願っています!