サービスファイルがあります:Memory.service
[Unit]
Description=Memory Service
[Service]
ExecStart=%h/opt/bin/Memory --quiet
SyslogIdentifier=MemoryService
[Install]
WantedBy=default.target
10秒ごとに利用可能なメモリの割合を計算して特定のレベルを下回ると、Firefoxを終了するMemoryと呼ばれるbashスクリプトが起動します。
したがって、私のbashスクリプトはデフォルトでデーモンのようなもので、終了せずにバックグラウンドで実行する必要があります。
このシステムサービスを実行すると、サービスは常に存在し、タイムアウトします。
$ systemctl --user start Memory
Job for Memory.service failed because a timeout was exceeded.
このスクリプトをバックグラウンドで実行し続けるにはどうすればよいですか?サービスファイルに記載されているように起動したいと思います。
注:端末から直接スクリプトを正常に実行できました。
ベストアンサー1
スクリプトの実行に時間がかかるため、この問題が発生することがあります。
デフォルト値は90秒です。
DefaultTimeoutStartSec=
デフォルト値DefaultTimeoutStopSec=
は90秒です。
設定サービスに追加してみてくださいTimeoutStartSec
。 90秒以上の入力はスクリプトによって異なります。
参考までに:https://www.freedesktop.org/software/systemd/man/systemd.service.html