Keine Ausgabe des Befehls zum Starten / Stoppen / Neustarten des Dienstes

10

Ich habe gerade Ubuntu 16.04 LTS installiert und das beim Ausführen festgestellt

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

Der Dienst wird neu gestartet (ich kann den Status mit sehen service <servicename> status), aber die Shell kehrt ohne das erwartete Ergebnis direkt zur Befehlszeile zurück:

* Stopping <servicename>     [ OK ]
* Starting <servicename>     [ OK ]
Eduardo Coria
quelle
Haben Sie sich die Protokolle angesehen, um festzustellen, ob Informationen zur Diagnose des Problems vorhanden sind? Es sollte in / var / log /
Diego
2
Es gibt kein Problem mit dem Service selbst. Es ist die Eingabeaufforderung, die ohne Ausgabe zurückkehrt, die mich verblüfft. Das passiert bei jedem Service. Der Befehl macht, was erwartet wird (Start / Stopp / Neustart des Dienstes), aber es gibt keine Ausgabe
Eduardo Coria

Antworten:

9

Sie sollten keine solche Ausgabe erwarten.

Für den Anfang hat sich Ubuntu in früheren Versionen nicht so verhalten. Ubuntu war knapp ein Jahrzehnt lang ein Emporkömmling, und das Verhalten des serviceBefehls unter Ubuntu hat in all den Jahren nicht dem entsprochen, was Sie erwarten. Das Startverhalten des serviceBefehls ist im Bild unter Wie erhalte ich den Dienstbefehl zum Drucken der Ausgabe in 15.10? .

Die Antwort ist für Sie ziemlich dieselbe wie für die Leute mit Ubuntu Version 15.10 im letzten Jahr:

Sie verwenden Ubuntu Version 16.10, ein systemd Betriebssystem. Ihre Systemdienstverwaltung wird nicht mehr von upstart ausgeführt (oder von einem beliebigen Dienstprogramm, das auf einem anderen Nicht-Ubuntu-Betriebssystem ausgeführt wurde). Es wird von systemd durchgeführt.

Der serviceBefehl mag derselbe sein ... aber der Debian / Ubuntu- serviceBefehl ist ein Shell-Skript, das versucht, automatisch zu erkennen, ob upstart oder systemd der ausgeführte Systemdienstmanager ist, und die tatsächlichen nativen Dienstverwaltungsbefehle für upstart und systemd auszuführen. Es führt zwei ziemlich unterschiedliche Codepfade für upstart und für systemd aus.

Emporkömmling nativen Service - Management - Befehle sind initctl start, initctl stop, initctl statusund so weiter. Diese drucken Nachrichten, während sie gehen.

systemd nativen Service - Management - Befehle sind systemctl start, systemctl stop, systemctl statusund so weiter. Diese drucken während des Betriebs keine Ausgabe.

Weiterführende Literatur

JdeBP
quelle
1
"Sie sollten keine solche Ausgabe erwarten." ist kein guter Ort, um eine Antwort zu beginnen. Sie sagen im Grunde: "Ihre Meinung ist falsch". Was Sie sagen wollten, denke ich, ist "das ist mit systemd nicht möglich". Während der Starttage hat Ubuntu DID ausgegeben ... es ist die Frage für "Wie bekomme ich den Dienstbefehl, um die Ausgabe in 15.10 zu drucken". Vor 15.10 verwendete Ubuntu Upstart und Upstart (wie Sysvinit) war ausführlich. Sagen Sie also bitte nicht: "Es ist seit einem Jahrzehnt so." Es hat nicht. Es hat sich am 15.10 geändert. Systemd ist nicht ausführlich und das ist sehr irritierend, seit Distributionen damit begonnen haben, es bereitzustellen.
Bobpaul
Der Fragesteller hat Ihnen ganz klar gesagt, was xe erwartet hat, und die Upstart-Ausgabe ähnelt dem nicht. Sie sind verwirrt oder haben die Frage nicht gelesen.
JdeBP
0

Eigentlich brauchst du keine OK-Ausgabe. Keine Ausgabe bedeutet OK. Wenn ein Dienst nicht richtig gestartet wird, zeigt Ihnen Ubuntu Folgendes:

Der Job für php5.6-fpm.service ist fehlgeschlagen, da der Steuerungsprozess mit dem Fehlercode beendet wurde. Weitere Informationen finden Sie unter "systemctl status php5.6-fpm.service" und "journalctl -xe".

In meinem Fall war dieses Beispiel eine Fehlkonfiguration in meiner php-fpm.conf, bei der der Dienst nicht gestartet werden konnte. Nachdem ich den Anweisungen gefolgt war, sortierte ich, was den Fehler verursachte.

Filipe Marques
quelle