systemdにinit.dスクリプトの機能を実行させ、開始または停止のコマンドを手動で指定した後、サービスのステータスを自動的に表示しようとしています。これはどういうわけか可能ですか?
systemdはバックグラウンドで実行されているため、残念ながらすぐにポップアップし、ステータスを表示するために2番目のコマンドを実行する必要があります。
すなわち。取得しようとしています
service nginx status
私がした後に自動的に実行する
service nginx start
または
service nginx restart
(または脳で損傷したsystemd、 systemctl start nginx.service
)
@Huygensは、すべての失敗を検出できるsystemdに依存していません。最も確実に、サイレントな失敗または警告が発生する可能性があります。プロセスはバックグラウンドで開始され、systemdが制御を終了します。init.dとはまったく異なります。dPIDファイルの作成が失敗した場合に一貫して発生することがわかります。手動での起動または再起動後にステータスを取得することは、systemd(および私の質問のポイント)では絶対に必要です。
—
ck_
説明をありがとう、私はここで何かを学びました!それでは、この質問への回答を楽しみにしています!
—
ホイヘンス2014
より優れたsystemd構文とは異なり、一度に複数のサービスを操作することができないため、脳死の構文はサービス1です。systemctl stop service1 service2 service3
—
god
systemctl
@Huygensが示唆したように、終了ステータスをチェックするときに同じ不整合が引き続き表示される場合、問題は、nginx.service
正常に開始するが、その後クラッシュする可能性があります。ジャーナルまたはNginxログを確認してください。
systemctl start nginx.service && echo SUCCESS || echo failure
か?