標準はありません。

標準はありません。

Linux(Ubuntu)システムで実行されているサービスの状態を確認すると、次の出力に慣れています。

service status nginx
* nginx is running

最近のnginxアップグレード後、同じコマンドの出力が次のように変更されました。

nginx start/running, process XXXX

XXXXプロセス番号はどこにありますか?

service statusこんな返信形式を見たことがないのにこれが正常なのか気になります。これは別の基準ですか、それともサービスが正しくインストールされていないことを意味できますか?

答え1

標準はありません。

service何が起こるかは、コマンドの特定の実装によって異なります。そしてどのサービスマネージャを使用していますか?そしてさらに関連サービスにはどのようなサービス定義がありますか?

システム

systemdをService Managerとして実行すると、出力はsystemdの出力になります。systemctl statusこれはコマンド(新しいDebian / Ubuntuによって提供されます)がservice後ろから呼び出すことです。

%systemctl 状態 nginx.service
●nginx.service – 高性能Webサーバーとリバースプロキシサーバー
   ロード済み:ロード済み(/lib/systemd/system/nginx.service;有効、ベンダーデフォルト:有効)
   アクティビティ:2015年8月12日水曜日20:16:25 CEST 23秒以降に失敗しました(結果:終了コード)。
  プロセス: 24221 ExecStartPre=/usr/sbin/nginx -t -q -g デーモンが開始されました。 (コード=終了、状態=1/失敗)
 マスターPID:17425(コード=終了、ステータス=0/成功)
%

これは、Ubuntu 15以降やDebian 8以降などのシステムオペレーティングシステム(他のオペレーティングシステムに切り替えられていない)の場合です。

小さなバリエーションは、時には実際のシステムサービスユニットファイルがないことです。この場合、systemdは1つを発明し(van SmoorenburgファイルをラップしますrcLoaded:、行は少し異なるように見えます(systemdがそのようなユニットを作成するので、パッケージプログラムは次の名前を隠します)。パッケージ化されたvan Smoorenburgファイル名を好むパッケージ単位ファイルの単位)rc

明らかに、systemd OSを使用せずに新しいDebian / Ubuntuserviceコマンドを使用しているようです。

追加読書

おやつ

system-control statusnoshツールセットを使用している場合、出力はnoshツールセットのコマンドが後ろserviceから呼び出す出力になります。

% サービス appcafe-nginx ステータス
/var/sv/appcafe-nginx:
    ステータス: 2019-01-12 17:58:09 +0000 16時間 33分 42秒前から実行中です。
    マスターPID:980
     開始:2019-01-12 17:58:06 +0000 0番出口16時間33分45秒前
         実行:2019-01-12 17:58:09 +0000 0番出口16時間33分42秒前
    設定:有効
%

追加読書

  • ジョナサンデボインポラード(2019)。serviceスナックガイド。ソフトウェア。
  • ジョナサンデボインポラード(2019)。system-controlスナックガイド。ソフトウェア。

突然現れる

initctl statusUpstartをService Managerとして実行すると、出力はDebian / Ubuntuが提供するUpstartコマンドの出力になります。古い)serviceコマンドは、次のようにバックグラウンドで呼び出されます。

%initctl 状態 nginx
nginxの起動/実行、プロセス2543
%

これは、Ubuntu 6〜Ubuntu 14やFedora 9〜Fedora 14などのUpstartオペレーティングシステムの場合です。

1つの問題は、UbuntuでサービスにUpstart操作が定義されていない限り、serviceコマンド(以前のDebian / Ubuntuで提供されていた)がinitctl statusvan Smoorenburgツールセットの動作を呼び出さないことです。

これは、nginxパッケージをnginxのUpstartジョブ定義を含む最新のパッケージにアップグレードするまでシステムで発生します。以前はfallbackが呼び出されましたが、今はそうではありません。 スタートアップ書類nginx 1.9バージョンに追加されました。

追加読書

  • スコット・ジェームズ・レナント(2009)。 status。アップスタートユーザーマニュアル。 Ubuntu。
  • initctl status」。ヌボリッチレシピ。 Ubuntu。
  • キャメロンノーマン(2014-04-22)。nginx起動操作。 Debian のバグ #745483.

オープンRC

OpenRCを使用する場合、出力は次のエイリアスであるrc-service statusOpenRCの出力になります。service

%rc-service nginx ステータス
 *ステータス:開始
%

追加読書

  • ロイメープルズ(2009-05-01)。rc-service。 RCを開きます。

ヴァン・スミュンバーグrc

rcvan Smoorenburgツールセットを使用している場合は、サブコマンドに従ってスクリプト自体が印刷する内容が出力されますstatus。ほとんどの場合、特にDebian 9以降、これはほとんどのスクリプトのステータス印刷を処理する一般的なヘルパーコマンドの出力になりますrc。しかし、それは何でもすることができ、サブコマンドの処理方法を決定することは完全にスクリプトに依存します。

rcDebian nginxパッケージに含まれるvan Smoorenburgスクリプトは、status_of_procDebianシェルスクリプトライブラリのヘルパーを使用します。/lib/lsb/init-functions

%status_of_proc -p /var/run/nginx.pid /usr/sbin/nginx nginx
*nginx が実行中です。
%

Ubuntuは2006年以降van Smoorenburg +を使用していないinitため、Debian / Ubuntu提供のコマンドを使用したvan Smoorenburgの動作は、上記のrcUpstartの問題によって発生します。 (以前)コマンドはUpstart操作を検出せず、状況をvan Smoorenburgとして処理します。 (systemdやnoshの代替方法はないことに注意してください。rcserviceservicercいいえUbuntuのvan Smoorenburgのrc行動をご覧ください。これらの1つは常に基本サービスとして実行され、すべてが基本サービスとして実行されます。 )

追加読書

関連情報