Wie ändere ich die Ausführlichkeit des Servicebefehls?


12

Ich verwende Kali 2 Linux. Ich benutze den Befehl systemctloder service, um einen Dienst wie Apache zu starten. In der vorherigen Version von Kali gibt der Befehl beim Starten eines Dienstes tatsächlich eine "OK" -Nachricht aus. In dieser Version wird jedoch nur auf die Befehlszeile zurückgegriffen und nichts gesagt.

Gibt es eine Möglichkeit, die Ausführlichkeit zu ändern oder sie so zu gestalten, wie es die vorherige Version getan hat?


Nun, normalerweise, wenn es keine Nachricht gibt, die Erfolg bedeutet.
Svetlin Tonchev

Antworten:


0

journaldIst ein zentraler Daemon, der Daten aus allen verfügbaren Quellen sammelt und sie zur einfachen und dynamischen Bearbeitung in einem Binärformat speichert. Als Antwort auf Ihre Frage würde ich sagen, dass normalerweise, wenn es keine Ausgabe gibt, dies "OK" bedeutet und wenn Sie sicher sein möchten, verwenden Sie journalctl, um die Protokolle zu überprüfen.


Ich weiß, aber ich mag das Gefühl, dass die OK-Nachricht daran
gewöhnt ist

Unabhängig davon, ob der Dienst gestartet wird oder nicht, erfolgt keine Ausgabe. Ich bin versucht, einen Alias ​​hinzuzufügen: Service $ 1 Start; Service $ 1 Status
Lenne

0

Der serviceBefehl (normalerweise aktiviert /usr/sbin/) ist heutzutage normalerweise nur ein bashShell-Skript, das den systemctlBefehl aufruft . Sie sollten es leicht ändern können, um die gewünschte Ausgabe zu erhalten.


0

Sie können eine hinzufügen echo $? dem Befehl ein um den Status 1 oder 0 anzuzeigen.

Das &&führt dazu, dass der zweite Befehl nur ausgeführt wird, wenn der vorherige erfolgreich ist.

systemctl start mysqld.service && echo $? 

Dies zeigt einen Status:

Wenn dies fehlschlägt, wird eine Meldung gedruckt, warum dies fehlgeschlagen ist

Wenn es erfolgreich ist, sehen Sie nur 0

Sie können in Ihrem Kopf das k 0 = 0k anhängen

Dies ist eine kostengünstige Problemumgehung, die Ihnen jedoch nach Ihren systemctl-Aufrufen eine gute Rendite bietet.


1
&& echo $?scheint eine eigenartige Sache zu sein; es wird gedruckt 0oder gar nichts. Sie könnten genauso gut sagen && echo OKoder && echo Success.
G-Man sagt 'Reinstate Monica'

1
Nein, es ist nicht wie Echo ok. Es gibt das tatsächliche Ergebnis des letzten Befehls wieder. Wenn es eine 0 ist, war es erfolgreich. Wenn nicht erfolgreich, wird es ein 1.
Mark Stewart

1
Nein, wenn dies fehlschlägt, wird die Nachricht gedruckt, die systemctl sendet, wenn der Dienst nicht gestartet wird. Probieren Sie es einfach selbst aus, es funktioniert. Ich habe es verwendet. Zum Beispiel (ich muss Dienstaufrufe verwenden, da RHEL bei Fehler oder Erfolg ausgibt) Wenn ein Dienst fehlschlägt, erhalten Sie die Standardausgabe systemctl fail. Wenn der Dienst gestartet wird, erhalten Sie eine 0 &&) Service läuft:
Mark Stewart

1
Wenn der Dienst ausgeführt wird: # service httpd start && echo $? Umleitung zu / bin / systemctl start httpd.service 0 Wenn fehlschlägt: (zeigt 1 wegen; anstelle von &&) service mysqld restart; echo $? Umleiten nach / bin / systemctl Neustart von mysqld.service 1 BITTE testen Sie dies selbst. Es ist einfach zu versuchen und funktioniert.
Mark Stewart

1
Ich habe nicht gesagt, dass es nicht funktioniert hat. Ich sagte, das && echo $?funktioniert genauso wie && echo 0- das „ $?“ lässt es so aussehen, als ob Sie etwas Anspruchsvolleres tun als Sie - und solange Sie etwas so Unkompliziertes tun && echo 0, können Sie es genauso gut tun && echo OK, was gibt das Ergebnis, nach dem die Frage fragt. ... ... ... ... ... ... ... ... ... ... ... ... ... ... Ist  echo 0genau das gleiche wie echo OK? Nein natürlich nicht; 0 ist ein Zeichen, das eine Ziffer ist, während OK zwei Zeichen (alphabetische) Buchstaben sind. Duh. … (Fortsetzung)
G-Man sagt 'Reinstate Monica'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.