時間がかかるスクリプトには、systemdサービス単位オプションType = oneshotが適していますか?

時間がかかるスクリプトには、systemdサービス単位オプションType = oneshotが適していますか?

Type完了するのに時間がかかるスクリプトを実行するサービスには、どちらが良いか疑問に思います。デバイスはデバイスによってトリガされますsystemd.path

もちろんワンショットと言いたいのですが、100%確信することはできません。

答え1

はい。

スクリプトはいくらでも実行できます。通常のサービス開始タイムアウト(90秒)が有効になっていないためですType=oneshot。ただし、Type=oneshotサービスのタイムアウトを強制する場合は、単に手動で設定できます。

タイムアウト開始秒=

開始を待つ時間を設定します。デーモンサービスが設定された時間内に開始完了信号を送信しない場合、サービスは失敗したとみなされ、再び終了します。単位なしの秒単位値または「5min 20s」などの時間範囲値を使用します。タイムアウトロジックを無効にするには、「無限大」を渡します。 Type = oneshotを使用しない限り、管理者設定ファイルのデフォルトはDefaultTimeoutStartSec =です。この場合、タイムアウトはデフォルトで無効になります。

-男 systemd.service

使用しないもう1つの理由Type=simpleは、実行時にサービス状態が「開始済み」と表示されることです。 Type=oneshot「起動中」のステータスが表示されます。完璧ではないかもしれませんが、もっと意味があると思います。

関連情報