Wie kann ich einen Dienst mit dem Befehl „service“ statt „/etc/init.d/nameofservice start“ starten und stoppen?

Wie kann ich einen Dienst mit dem Befehl „service“ statt „/etc/init.d/nameofservice start“ starten und stoppen?

Ich starte einen Dienst (httpd) mit diesem Befehl:

/etc/init.d/'name of service' start

Wie kann ich mit dem folgenden Befehl einen Dienst starten, wenn das Dienstschlüsselwort für den oben genannten httpd-Dienst nicht konfiguriert ist?

2)Dienst 'Dienstname' starten, z. B.: Dienst httpd starten

Wie kann ich einen Dienst konfigurieren, der mit dem Dienstschlüsselwort gestartet und gestoppt werden kann, z. B.: „service ‚nameofservice‘ start“ (Dienstschlüsselwort wie in Option 2) anstelle von /etc/init.d/nameofservice?

Antwort1

Der Befehl service(8) sucht in /etc/init.d nach einem Skript. Wenn kein solches Skript existiert, müssen Sie möglicherweise ein eigenes schreiben. Im Web finden SieAnleitungen, die Ihnen dabei helfen.

Antwort2

Das folgende Skript wurde in Centos 5 getestet. Wir werden ein Skript erstellen, das das aktuelle Datum und die aktuelle Uhrzeit druckt, die Ausgabe in eine Protokolldatei leitet und unter dem Namen „timed“ speichert.

vim /opt/timed     


 #!/bin/bash 
while true;do
      echo  `date` >> /tmp/timed.log 
done #script finish here below line enable execute permission of script

 chmod +x /opt/timed

Jetzt schreiben wir ein System-V-Skript, um das zeitgesteuerte Skript zu starten und zu stoppen.

vim /etc/init.d/time (save the script only in /etc/init.d directory only with the name of your choice we use name time here)


  #!/bin/bash  
  # chkconfig: 345 80 20      
  # description: startup script for /opt/timed daemon  
start() {  
nohup /opt/timed &  
}  
stop() {  
pkill timed  
}  
case "$1" in  
             start)   
                   start  #calling the start () function  
             ;;  
             stop)  
                   stop # calling the stop() function
             ;;  
             *)
                   echo "Usage: $0 {start|stop}"  
                   RETVAL=1 #we return the value 1 bcz cmd is not sucessfull  
  esac
  exit 0



 chmod +x /etc/init.d/time  (enabling the execute permission of script)
 service time start    (it will start the script timed)
 ps –ef | grep timed (we can check that script is running with this command)

Erklärung des Skripts

Das Zeitskript muss sich im /etc/init.dVerzeichnis befinden. chkconfig: 345 80 20ist eine notwendige Komponente des Skripts 345, das die Runlevel 3, 4 und 5 darstellt. 20 bedeutet, dass der Startbefehl die Nummer 20 (S20) im Verzeichnis /etc/rc3/ hat. 80 bedeutet, dass der Stoppbefehl die Nummer 80 (k80) im Verzeichnis /etc/rc3/ hat.

start()und stop()sind Funktionen zum Starten und Stoppen des Daemons. Wenn Sie einen Unix-Job im Hintergrund ausführen (mit &, bg-Befehl) und sich von der Sitzung abmelden, wird Ihr Prozess beendet. Sie können dies mit mehreren Methoden vermeiden – indem Sie den Job mit nohup ausführen oder ihn als Batch-Job mit dem at-, batch- oder cron-Befehl ausführen. Mit dem PKill-Befehl können Sie ein Programm beenden, indem Sie einfach den Namen angeben. $1 nimmt das erste Argument. $0 bedeutet den Namen des Skripts. RETVAL ist die Umgebungsvariable, die dem Beendigungsstatus des Skripts entspricht. Wenn sie 0 ist, wurde das Skript erfolgreich ausgeführt, und 1 bedeutet, dass das Skript nicht erfolgreich ausgeführt wurde. Wenn wir einen anderen Befehl als start oder stop angeben, wird die Verwendungsmeldung ausgegeben.

verwandte Informationen