Centos
永久禁用初始化服務
我剛剛配置了一個執行 CentOS 6 的新 VPS,它帶有 Apache。
我想禁用 Apache,因為我將改用 Nginx。
我知道我可以刪除 /etc/init.d/ 中的腳本,但我不想這樣做,因為它是系統附帶的庫存。我寧願有一種優雅的方式來禁用該服務。
我以為我可以在 /etc/inittab 中放一些東西,但 inittab 包含:
# 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:
這使我相信系統正在執行新貴。好吧,我看了,在新貴中禁用服務的正確方法是添加覆蓋文件。所以我跑:
% 'manual' > /etc/init/httpd.override
並重新啟動我的伺服器。但是httpd仍在執行!對此感到困惑,我決定通過執行檢查 upstart 是 init 服務
% readlink /proc/1/exe /sbin/init
好吧,這不是我期望看到的。也許我畢竟不是暴發戶。有確定的檢查方法嗎?如果我正在執行 init,永久禁用服務的推薦方法是什麼?我對這一切都很陌生,而且似乎有很多相互矛盾的意見。
感謝大家的幫助。
在幾乎任何 RedHat 派生的發行版下禁用服務的方法是使用以下
chkconfig
命令:# chkconfig httpd off
並停止正在執行的服務:
# service httpd stop
無論您的系統是執行、還是 vanilla,這些命令都會做正確
systemd
的upstart
事SysVInit
。值得一提的是,儘管
upstart
在 CentOS 6 中執行大多數服務實際上使用的是遺留init.d
腳本,位於/etc/rc.d/rc<RUNLEVEL>.d
. 對於這些服務,chkconfig
管理/etc/rc.d/init.d
.