web-dev-qa-db-ja.com

サービスの開始/停止/再起動コマンドからの出力がない

Ubuntu 16.04 LTSをインストールしましたが、実行すると

usr@server:~$ Sudo service <servicename> restart
usr@server:~$

サービスは再起動されます(service <servicename> statusでステータスを確認できます)が、シェルは予期せずにコマンドラインに直接戻ります。

* Stopping <servicename>     [ OK ]
* Starting <servicename>     [ OK ]
10
Eduardo Coria

このような出力を期待しないでください。

まず、Ubuntuは以前のバージョンではこのように動作しませんでした。 Ubuntuは10年弱の間、新興システムでした。Ubuntuのserviceコマンドの動作は、これらすべての年の間、期待したものとは似ていませんでした。 15.10で出力を印刷するためのサービスコマンドを取得するにはどうすればよいですか? で、イメージのserviceコマンドのupstart動作を確認できます。

答えは、昨年のUbuntuバージョン15.10を使用しているユーザーとほぼ同じです。

SystemdオペレーティングシステムであるUbuntuバージョン16.10を使用しています。システムサービス管理は、upstart(または以前に使用していたUbuntu以外のオペレーティングシステムで実行したユーティリティ)によって実行されなくなりました。 systemdによって実行されます。

serviceコマンドは同じかもしれませんが、Debian/Ubuntu serviceコマンドは、upstartまたはsystemdが実行中のシステムサービスマネージャーであるかどうかを自動検出し、実際のネイティブサービスを実行しようとするシェルスクリプトです。 upstartおよびsystemdの管理コマンド。 upstartとsystemdの2つのまったく異なるコードパスを実行します。

upstartのネイティブサービス管理コマンドは、initctl startinitctl stopinitctl statusなどです。それらはメッセージを印刷します。

systemdのネイティブサービス管理コマンドは、systemctl startsystemctl stopsystemctl statusなどです。これらは、動作時に出力を印刷しません。

参考文献

9
JdeBP

実際には、OK出力は必要ありません。出力なしはOKを意味します。サービスが適切に開始されない場合、Ubuntuは次のように表示します。

制御プロセスがエラーコードで終了したため、php5.6-fpm.serviceのジョブが失敗しました。詳細については、「systemctl status php5.6-fpm.service」および「journalctl -xe」を参照してください。

私の場合、この例はphp-fpm.confの設定ミスであり、サービスを開始できませんでした。指示に従って、エラーの原因を分類しました。

0
Filipe Marques