現在、Linuxで使用される3つの主要な初期化システムがあります。数年前、たった1つ、SysVinitがありました。しかし、SysVinitはサービス依存グラフなどの機能が大幅に不足していたため、現在ではほとんどのディストリビューションで非推奨になっています。現在、ほとんどのディストリビューションはsystemdに切り替えています。新興企業もありますが。
しかし、3つの初期化システムのそれぞれに対するあなたの質問に対する答えは次のとおりです。
SysVinit
現在DebianおよびRedHatで使用されているSysVinit。ただし、RedHat(7)の次のバージョンではsystemdを使用します。
起動時にSysVinitサービスを有効にする方法は、シンボリックリンク/etc/rc3.d
(または/etc/rc2.d
)です。すべてのサービスはにあります/etc/init.d
。ただし、ディストリビューションにはこれらのファイルを管理するための独自のツールがあることが多く、代わりにそのツールを使用する必要があることに注意してください。(Fedora / RedHatにはとがservice
ありchkconfig
、ubuntuにはがありますupdate-rc.d
)
リストサービス:
ls /etc/init.d/
サービスを開始:
/etc/init.d/{SERVICENAME} start
または
service {SERVICENAME} start
サービスを停止します:
/etc/init.d/{SERVICENAME} stop
または
service {SERVICENAME} stop
サービスを有効にする:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
(S95
順序を指定するために使用されます。S01はS02の前に開始されます。など)
サービスを無効にします。
rm /etc/rc3.d/*{SERVICENAME}
システム化
systemdを使用した最も注目すべきディストリビューションはFedoraです。それは他の多くの人によって使用されていますが。さらに、Debianはsystemd overstartを使用することを選択したため、ほとんどのディストリビューションの事実上のupstartシステムになります(ubuntuはsystemdのupstartを廃止することをすでに発表しています)。
リストサービス:
systemctl list-unit-files
サービスを開始:
systemctl start {SERVICENAME}
サービスを停止します:
systemctl stop {SERVICENAME}
サービスを有効にする:
systemctl enable {SERVICENAME}
サービスを無効にします。
systemctl disable {SERVICENAME}
新興企業
UpstartはUbuntuの人々によって開発されました。しかし、debian がsystemdを使用することを決定した後、Ubuntu は新興企業をやめると発表しました。
Upstartは、RHEL-6に存在するためRedHatでも短時間使用されましたが、一般的には使用されていません。
リストサービス:
initctl list
サービスを開始:
initctl start {SERVICENAME}
サービスを停止します:
initctl stop {SERVICENAME}
サービスを有効にする:
残念ながら2つの方法:
/etc/default/{SERVICENAME}
行を含むファイルがありますENABLED=...
。この行をに変更しENABLED=1
ます。
ファイルがあります/etc/init/{SERVICENAME}.override
。それが含まれていることを確認しstart
、(または完全に存在しない)ではありませんmanual
。
サービスを無効にします。
echo manual > /etc/init/{SERVICENAME}.override
注:Gentooが使用する「OpenRC」initシステムもあります。現在、Gentooはそれを使用する唯一のディストリビューションであり、使用が検討されておらず、他のディストリビューションでもサポートされていません。そのため、私はそれの使用法をカバーしていません(意見が私がそうであるならば、私はそれを加えることができます)。