Ich habe gerade einen neuen VPS mit CentOS 6 bereitgestellt, der mit Apache geliefert wird.
Ich möchte Apache deaktivieren, da ich stattdessen Nginx verwenden werde.
Ich weiß, dass ich das Skript in /etc/init.d/ einfach löschen kann, aber ich möchte das nicht tun, da es eine Standard-Sache ist, die mit dem System geliefert wurde. Ich hätte lieber eine elegante Möglichkeit, den Dienst zu deaktivieren.
Ich dachte, ich könnte etwas in / etc / inittab einfügen, aber inittab enthält:
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
Dies lässt mich glauben, dass das System hochgefahren ist. Nun, ich habe nachgesehen, und der richtige Weg, einen Dienst beim Start zu deaktivieren, besteht darin, eine Überschreibungsdatei hinzuzufügen. Also renne ich:
% 'manual' > /etc/init/httpd.override
Und starte meinen Server neu. Aber httpd läuft noch! Verwirrt entscheide ich mich, durch Ausführen zu überprüfen, ob Upstart der Init-Dienst ist
% readlink /proc/1/exe
/sbin/init
Nun, das hatte ich nicht erwartet. Vielleicht bin ich doch nicht empört. Gibt es eine bestimmte Möglichkeit zu überprüfen? Und wenn ich init ausführe, wie kann ich einen Dienst dauerhaft deaktivieren? Ich bin neu in all dem und es scheint viele widersprüchliche Meinungen zu geben.
Vielen Dank für Ihre Hilfe.
Antworten:
Die Art und Weise, wie Sie einen Dienst unter nahezu jeder von RedHat abgeleiteten Distribution deaktivieren, erfolgt mit dem folgenden
chkconfig
Befehl:Und um einen laufenden Dienst zu stoppen:
Diese Befehle werden das Richtige tun , unabhängig davon , ob das System ausgeführt wird
systemd
,upstart
oder VanilleSysVInit
.Für das, was es wert ist, verwenden die
upstart
meisten Dienste in CentOS 6 tatsächlich ältereinit.d
Skripte, die sich in befinden/etc/rc.d/rc<RUNLEVEL>.d
.chkconfig
Verwaltet für diese Dienste die Symlinks in/etc/rc.d/init.d
.quelle
Deaktivieren Sie den Dienst, den Sie während des Systemstarts nicht starten möchten, mit chkconfig .
Liste der verfügbaren Dienste mit ihren Staaten
chkconfig --list
Deaktivieren Sie den Dienst htttpd in Runlevel 2345
chkconfig --level 2345 httpd off
quelle