web-dev-qa-db-ja.com

Ubuntu、initスタートアップを制御する

Ubuntuはsysvinitの代わりにupstartを使用します。ただし、ランレベルとその中のリンクはまだあります。

Torをインストールしましたが、OSの起動に追加されました。ここでそれを削除したいと思います。一般的なオプションは、ランレベルからサービスの開始と停止のリンクを削除するか、/ etc/init.d /スクリプトを実行不能にすることです。これは問題ありませんが、スタートアップリストに再びtorを入れたい場合は問題になります。適切なランレベルディレクトリに適切なシーケンスを配置する方法を知るにはどうすればよいでしょうか。

完全なガイドはありますか?これのルールは何ですか? initを管理するためのツールはありますか?

伝えてください

3
Xolve

SysVinitはこのように機能します。各パッケージの初期化スクリプトは/ etc/init.dにあります。これらのスクリプトへのリンクは、/ etc/rcS.dおよび/ etc/rc [0-6] .dにあります。これらのリンクは、[〜#〜] s [〜#〜](開始)または[〜#〜] k [〜#〜](キル)のいずれかで始まり、 2桁の数字。

  • システムが起動してSysVinitプロセスが開始すると、/etc/rcS.dを検索し、[〜#〜] s [〜#〜]で始まるスクリプトを実行します。番号順に並べられています。 (スクリプトに「start」引数が渡されると思いますが、よくわかりません。)

  • すべての/etc/rcS.dスクリプトが処理された後、システムは特定のランレベルへの移行を開始します。 Ubuntuでは、通常のデスクトップから起動すると、デフォルトのランレベルは2です。したがって、SysVinitは/ etc/rc2.d

    1. [〜#〜] k [〜#〜]で始まるリンクで、番号順にすべてのサービスを停止します。そして
    2. [〜#〜] s [〜#〜]で始まるリンクですべてのサービスを開始し、番号順に並べます。

    代わりにUbuntuのリカバリモードで起動した場合は、ランレベルで起動します1。すべてのサービスが開始されると、システムのランレベルが正式に設定されます。

  • 最後に、システムは/ etc/rc.localスクリプトを実行します。

後でランレベルを切り替えると、SysVinitは同じ基本プロセスを実行します。つまり、/etc/rcS.dをチェックしませんが、/ etc /rcN.d内のリンクの処理に直接進みます。(ここで、Nは入力されているランレベルです)。


Upstartスクリプトを作成することもできます。私は 以前にUpstartについて書いた なので、詳細についてはそこで確認してください。起動スクリプトは/ etc/initに保持されます。それらを書くには、既存のスクリプトを調べてそれがどのように機能するかを理解し、 init(5)マンページ を読んでください。

8
quack quixote

私はツールとしてupdate-rc.dしか知りません。 マニュアルページ はそれを使用する方法を説明していて、学ぶのはそれほど難しくありません。


chkconfigについて教えてくれたQuackに感謝します。彼の投稿を確認してください ここ

1
Apache

これが pdate-rc.dのマニュアルページ です。基本的に、rc.dリンクの削除は、アップグレード時に復元されるため機能しません。正しい方法は次のとおりです。

Sudo update-rc.d tor disable

/etc/rc?.dのS(開始)リンクの名前をK(停止)リンクに変更します。これも機能します:

Sudo rename 's:/S:/K:g' /etc/rc?.d/S*tor
0
Tobu