web-dev-qa-db-ja.com

Initサービスを永続的に無効にする

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を実行している場合、サービスを永続的に無効にするための推奨される方法は何ですか?私はこれらすべてに不慣れで、相反する意見がたくさんあるようです。

ご協力ありがとうございます。

10
Max Bucknell

ほぼすべてのRedHat派生ディストリビューションでサービスを無効にする方法は、chkconfigコマンドを使用することです。

# chkconfig httpd off

実行中のサービスを停止するには:

# service httpd stop

これらのコマンドは、システムがsystemdupstart、またはVanilla SysVInitのどちらを実行しているかに関係なく、正しいことを行います。

価値があるのは、upstartを実行しているにもかかわらず、CentOS 6のほとんどのサービスは実際にはinit.dにあるレガシー/etc/rc.d/rc<RUNLEVEL>.dスクリプトを使用することです。これらのサービスでは、chkconfig/etc/rc.d/init.dのシンボリックリンクを管理します。

16
larsks

chkconfigを使用して、システムの起動中に開始したくないサービスを無効にします。

利用可能なサービスとその状態をリスト

chkconfig --list

ランレベル2345でサービスhtttpdを無効にする

chkconfig --level 2345 httpd off

4
clement