CentOS 6を実行する新しいVPSをプロビジョニングしたところ、Apacheが付属しています。
代わりにNginxを使用するため、Apacheを無効にします。
/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:
これは私がシステムが新興企業を実行していると信じることにつながります。さて、私は見ました、そしてupstartでサービスを無効にする正しい方法は上書きファイルを追加することです。だから私は走る:
% 'manual' > /etc/init/httpd.override
サーバーを再起動します。しかし、httpdはまだ実行中です!これに混乱して、次のコマンドを実行して、upstartがinitサービスであることを確認することにします。
% readlink /proc/1/exe
/sbin/init
まあそれは私が期待していたものではありません。結局のところ、私は新興企業を実行していません。確認する明確な方法はありますか?また、initを実行している場合、サービスを永続的に無効にするための推奨される方法は何ですか?私はこれらすべてに不慣れで、相反する意見がたくさんあるようです。
ご協力ありがとうございます。
ほぼすべてのRedHat派生ディストリビューションでサービスを無効にする方法は、chkconfig
コマンドを使用することです。
# chkconfig httpd off
実行中のサービスを停止するには:
# service httpd stop
これらのコマンドは、システムがsystemd
、upstart
、またはVanilla SysVInit
のどちらを実行しているかに関係なく、正しいことを行います。
価値があるのは、upstart
を実行しているにもかかわらず、CentOS 6のほとんどのサービスは実際にはinit.d
にあるレガシー/etc/rc.d/rc<RUNLEVEL>.d
スクリプトを使用することです。これらのサービスでは、chkconfig
が/etc/rc.d/init.d
のシンボリックリンクを管理します。
chkconfigを使用して、システムの起動中に開始したくないサービスを無効にします。
利用可能なサービスとその状態をリスト
chkconfig --list
ランレベル2345でサービスhtttpdを無効にする
chkconfig --level 2345 httpd off