Fügen Sie Linux eine Startmethode hinzu (Dienst/Skript)

Fügen Sie Linux eine Startmethode hinzu (Dienst/Skript)

Konfigurationsdatei, die beim Systemstart geladen werden muss

/etc/Profil, /root/.bash_profile
/etc/bashrc, /root/.bashrc
/etc/profile.d/*.sh, /etc/profile.d/lang.sh
/etc/sysconfig/i18n, /etc/rc.local (/etc/rc.d/rc.local)

1. Ändern Sie die Boot-Startdatei: /etc/rc.local (oder /etc/rc.d/rc.local)

# 1. Bearbeiten Sie die Datei rc.local [root@localhost ~]# vi /etc/rc.local

# 2. Ändern Sie die Datei rc.local und fügen Sie vor exit 0 den folgenden Befehl hinzu. Speichern und beenden.
/etc/init.d/mysqld start #mysql startup/etc/init.d/nginx start #nginx startup supervisord -c /etc/supervisor/supervisord.conf # supervisord startup/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null

# 3. Ändern Sie abschließend die Ausführungsberechtigung der Datei rc.local [root@localhost ~]# chmod +x /etc/rc.local
[root@localhost ~]# chmod 755 /etc/rc.local

2. Schreiben Sie selbst ein Shell-Skript

Legen Sie das geschriebene Skript (.sh-Datei) in das Verzeichnis /etc/profile.d/. Alle Shell-Skripte in diesem Verzeichnis werden nach dem Systemstart automatisch ausgeführt.

3. Über den Befehl chkconfig festlegen

# 1. Verschieben Sie die (Skript-)Startdatei in das Verzeichnis /etc/init.d/ oder /etc/rc.d/init.d/. (Ersteres ist ein Softlink zu Letzterem)
mv /www/wwwroot/test.sh /etc/rc.d/init.d

# 2. Achten Sie darauf, die folgenden drei Codezeilen vor der Startdatei hinzuzufügen, da sonst die Meldung angezeigt wird, dass chkconfig nicht unterstützt wird.
#!/bin/sh weist das System an, die Shell zu verwenden, daher sehen alle Shell-Skripte so aus: #chkconfig: 35 20 80 stellt jeweils den Ausführungslevel, die Startpriorität und die Herunterfahrpriorität dar. Diese Codezeile muss #description: http-Server lauten. Sie können sie beliebig verwenden! ! ! Diese Codezeile muss /bin/echo $(/bin/date +%F_%T) >> /tmp/test.log sein.

# 3. Fügen Sie dem Skript Ausführungsberechtigungen hinzu chmod +x /etc/rc.d/init.d/test.sh

# 4. Fügen Sie das Skript zum automatischen Startprojekt hinzu. Zu chkconfig hinzufügen und beim Booten automatisch starten.
[root@localhost ~]# cd /etc/rc.d/init.d
[root@localhost ~]# chkconfig --add test.sh
[root@localhost ~]# chkconfig test.sh ein

# 5. Booten ausschalten [root@localhost ~]# chkconfig test.sh off

# 6. Löschen Sie test.sh aus der chkconfig-Verwaltung
[root@localhost ~]# chkconfig --del test.sh

# 7. chkconfig-Verwaltung anzeigen [root@localhost ~]# chkconfig --list test.sh

4. Servicedateien anpassen, zu Systemdiensten hinzufügen und über Systemctl verwalten

1. Schreiben Sie Servicedateien: wie nginx.service, redis.service, supervisord.service

[Unit]: Beschreibung des Dienstes Beschreibung: Beschreiben Sie den Dienst Nachher: ​​Beschreiben Sie die Dienstkategorie [Dienst] Einstellungen für die Ausführungsparameter des Dienstes Type=forking ist die Form der Ausführung im Hintergrund ExecStart ist der spezifische Ausführungsbefehl des Dienstes ExecReload ist der Neustartbefehl des Dienstes ExecStop ist der Stoppbefehl des Dienstes PrivateTmp=True bedeutet, dem Dienst unabhängigen temporären Speicherplatz zuzuweisen Hinweis: Für alle Start-, Neustart- und Stoppbefehle müssen absolute Pfade verwendet werden [Install] Zugehörige Einstellungen für die Dienstinstallation, die auf Mehrbenutzer eingestellt werden können WantedBy=multi-user.target 

2. Die Datei wird im Verzeichnis: mit 754 Berechtigungen gespeichert. Verzeichnispfad: /usr/lib/systemd/system. Beispielsweise wird die obige Datei supervisord.service in diesem Verzeichnis abgelegt.

[root@localhost ~]# cat /usr/lib/systemd/system/nginx.service
[root@localhost ~]# cat /usr/lib/systemd/system/supervisord.service

3. Stellen Sie das System so ein, dass es beim Booten automatisch startet (Ausführung in einem beliebigen Verzeichnis). Wenn beim Ausführen des Startbefehls ein Fehler auftritt, führen Sie Folgendes aus: systemctl daemon-reload

Automatischen Start einrichten [root@localhost ~]# systemctl enable nginx.service    
[root@localhost ~]# systemctl enable supervisord

Automatisches Booten stoppen [root@localhost ~]# systemctl disable nginx.service
[root@localhost ~]# systemctl deaktivieren supervisord

Überprüfen Sie, ob es beim Booten gestartet wird [root@localhost ~]# systemctl is-enabled nginx
[root@localhost ~]# systemctl ist aktiviert supervisord

4. Andere Befehle

Starten Sie den Nginx-Dienst [root@localhost ~]# systemctl start nginx.service

Stoppen Sie den Nginx-Dienst [root@localhost ~]# systemctl start nginx.service

Starten Sie den Nginx-Dienst neu [root@localhost ~]# systemctl restart nginx.service

Den aktuellen Status des Nginx-Dienstes anzeigen [root@localhost ~]# systemctl status nginx.service

Alle gestarteten Dienste anzeigen [root@localhost ~]# systemctl list-units --type=service

5. Beispiel für eine Servicedatei:

# supervisord.service Prozessmanagement-Servicedatei [Unit]
Beschreibung=Process Monitoring and Control Daemon # Definieren Sie den Inhalt selbst: Beschreibung=Supervisor-Daemon
Nach=rc-local.service nss-user-lookup.target

[Service]
Typ=Forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop= /usr/bin/supervisorctl Herunterfahren 
ExecReload=/usr/bin/supervisorctl neu laden
Neustart=bei Fehler
NeustartSec=42s
KillMode=Prozess 

[Installieren]
WantedBy=Mehrbenutzer.Ziel

# nginx.service Servicedatei [Unit]
Beschreibung=nginx – Hochleistungs-Webserver
Nach=Netzwerk.Ziel Remote-FS.Ziel NSS-Lookup.Ziel

[Service]
Typ=Forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s neu laden
ExecStop=/usr/local/nginx/sbin/nginx -s stoppen

[Installieren]
WantedBy=Mehrbenutzer.Ziel

# redis.service Servicedatei [Unit]
Beschreibung=Redis
Nach=Netzwerk.Ziel Remote-FS.Ziel NSS-Lookup.Ziel

[Service]
Typ=Forking
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=kill -INT `cat /tmp/redis.pid`
Benutzer=www
Gruppe=www

[Installieren]
WantedBy=Mehrbenutzer.Ziel

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Drei Möglichkeiten, den automatischen Start von Linux-Diensten einzurichten
  • So richten Sie Oracle so ein, dass es beim Booten unter Linux automatisch gestartet wird
  • Oracle-Startskript unter Linux und dessen Start
  • Starten und Stoppen von Oracle-Diensten und automatischer Start des Bootvorgangs unter Linux
  • So richten Sie den Redis-Start in Linux ein
  • Schritte zum Starten des Nodemanagers beim Linux-Boot
  • Redis-Passworteinstellung und Autostart unter Linux
  • Detaillierte Erklärung des Linux-Bootvorgangs
  • So starten Sie den Redis-Dienst automatisch, wenn Linux hochfährt
  • Beispiel zum Einrichten eines Linux-Systems zur automatischen Ausführung eines Skripts beim Start

<<:  MySQL-Index für Anfänger

>>:  vue $set implementiert die Zuweisung von Werten zu Array-Sammlungsobjekten

Artikel empfehlen

Eine kurze Analyse des Unterschieds zwischen statisch und selbst in PHP-Klassen

Verwenden Sie self:: oder __CLASS__, um eine stat...

Lösung für Verbindungsfehler beim MySQL-Server 5.5

Die Lösung für das Problem, dass MySQL keine Verb...

Verwenden von Streaming-Abfragen in MySQL, um Daten-OOM zu vermeiden

Inhaltsverzeichnis 1. Einleitung 2. JDBC implemen...

Tutorial zur Installation von jdk1.8 auf Ubuntu14.04

1. Laden Sie die JDK-Download-Adresse herunter我下載...

Eine detaillierte Einführung in die Betriebssystemebenen von Linux

Inhaltsverzeichnis 1. Einführung in die Linux-Sys...

Sorgen Sie für eine schnelle Website

Ist Leistung wirklich wichtig? Leistung ist wicht...

Vue implementiert eine kleine Countdown-Funktion

In vielen Projekten muss eine Countdown-Funktion ...

Im Mybatis MySQL-Löschvorgang kann nur die erste Datenmethode gelöscht werden

Insekten Wie in der Abbildung gezeigt, begann ich...

Über die 4 Zusatzfunktionen von Vuex

Inhaltsverzeichnis 1. Zusatzfunktionen 2. Beispie...

So deinstallieren Sie das native OpenJDK von Linux und installieren Sun JDK

Siehe: https://www.jb51.net/article/112612.htm Üb...

Einführung in die Verwendung des http-equiv-Attributs im Meta-Tag

Meta ist ein Hilfstag im Kopfbereich der HTML-Spra...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.21 winx64

Dieser Artikel fasst die Hinweise zur Installatio...