追加読書

追加読書

プロセスがクラッシュまたは終了したときにプロセスを再開する(プロセスIDを識別した後)、自動的に作成できるコマンド/スクリプトはありますか?

たとえば、実行可能なbinファイルを実行していて、競合または終了するたびに自動的に再起動したいとします。

ベストアンサー1

次に展開イフレセセ使用に関するご意見systemd

~からRHEL 7ドキュメント:

Systemdは、Linuxオペレーティングシステムのシステムおよびサービスマネージャです。これはSysV initスクリプトと以前のバージョンと互換性があるように設計されており、起動時のシステムサービスの並列起動、要求時にデーモンの有効化、システム状態のスナップショットサポート、または依存性ベースのサービス制御ロジックなどの多くの機能を提供します。 Red Hat Enterprise Linux 7では、systemdはUpstartをデフォルトのinitシステムに置き換えます。

デフォルトでは、systemdサービスとシステムを全体的に管理します。プロセスを常に実行したい場合は、サービスのように機能したいと思います。カスタマイズされたサービス文書を作成することは難しくありません。

サービスファイルは次のものです。/etc/systemd/system/NAME.service 文書によると

カスタムサービスファイルの例RHEL 7ドキュメント再:

[Unit]
Description=service_description
After=network.target

[Service]
ExecStart=path_to_executable
Type=simple

[Install]
WantedBy=default.target

ファイルの機能の説明:

どこ:

service_descriptionは、ログファイルとsystemctl statusコマンドの出力に表示される情報の説明です。

After設定を使用すると、ネットワークが起動した後にのみサービスが開始されます。他の関連サービスまたはターゲットのスペースで区切られたリストを追加します。

path_to_executable は、実際のサービス実行可能ファイルのパスを示します。

...

WantedByは、サービスを開始する必要がある1つ以上のターゲットを指定します。これらのターゲットを以前のランレベルの概念に代わるものと考えてください。詳細は、9.3項「systemdターゲットの使用」を参照してください。

Type=simple標準であり、 で始まる実行可能ファイルがExecStart実行され続けると仮定します。

systemd元の質問に戻り、プロセスをサービスに切り替えるために使用している場合は、それを使用してsystemdサービスが常に実行されていることを確認できます。

~からRHEL 7ドキュメント再:

別の例は、基本プロセスが終了してから30秒遅れてサービスを再起動する構成ファイルです。

[Service]
Restart=always
RestartSec=30

Restart=alwaysファイルのサービスセクションにオプションを追加する[Service]systemd

おすすめ記事