Linuxの起動時に実行中のプログラムを停止する


29

Linuxの起動時に実行中のプログラムを停止するにはどうすればよいですか。いくつかのアプリをスタートアップから削除して、supervisordapache2などで管理できるようにしたい


それがまさに私がタグを付けなかった理由です...かなり多くの異なるディストリビューションで作業しているので、私はすべてのバリエーションを探しています。
Frozenskys

回答:


29

ディストリビューションに応じて、chkconfigまたはupdate-rc.dツールを使用してシステムサービスを有効/無効にします。

redhat / suse / mandrakeスタイルのシステムの場合:

sudo chkconfig apache2 off 

Debianの場合:

sudo update-rc.d -f apache2 remove

詳細については、マニュアルページをご覧ください。


Debianベースのディストリビューションで-f(強制だと思います)が必要なのはなぜですか?
Frozenskys

2
ここには2つのファイルセットがあります。/etc/init.d/に実際のinitスクリプトがあり、ランレベルディレクトリ/etc/rcrunlevel.d/にそれへのリンクがあります。これらの人は、/ etc / init.d /のスクリプトを指します。-fupdate-rd.dを使用しない場合、/ etc / init.d /のスクリプトが既に削除されていない限り失敗します。-f update-rc.dを使用すると、/ etc / init.d /スクリプトが削除されているかどうかに関係なく、リンクファイルが適切に削除されます。
ジャクソン

ああ、それはかなり理にかなっていますが、ランレベルスクリプトがinitスクリプトへの単なるリンクであることを忘れていました。追加の説明をありがとう。
Frozenskys

6

最新のUbuntuシステムと他のいくつかのディストリビューションを扱っている場合、従来のinitスクリプトとupstartスクリプトの組み合わせを扱う必要があるかもしれません。initスクリプトの管理については、他の回答で説明しています。起動時にupstartサービスが開始されないようにする1つの方法を次に示します。

# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled

この方法の問題は、次を使用してサービスを開始できないことです。

# service start servicename

これに代わる方法servicename.confは、お気に入りのエディターでファイルを開き、次で始まる行をコメントアウトすることです。

start on

つまり、これを

#start on ...

ここで、「...」は、以前に「開始」した後のものです。このようにして、再度有効にしたい場合、「開始」パラメータが何であったかを覚える必要はありません。

最後に、upstartの新しいバージョンがある場合は、構成ファイルの最後に「manual」という単語を追加するだけです。これはシェルから直接実行できます。

# echo "manual" >> /etc/init/servicename.conf

これにより、upstartはファイル内の「start on」フレーズを無視します。


2

最近のFedoraおよびFuture RHELシステム

systemctl disable httpd.service

httpdサービスを無効にします


ありがとう!私は多くの方法を試しましたが、このsystmctlコマンドはうまく機能しました。
loved.by.Jesus

1

すべてのスタートアップサービスを一覧表示するには

    systemctl

起動時にサービスの実行を停止するには

    sudo systemctl disable servicename

たとえば、起動時にsshサーバーの実行を停止する必要がある場合

    sudo systemctl disable sshd.service

これを再び有効にすることができます

    sudo systemctl enable sshd.service

ほとんどすべてのLinuxディストリビューションは、起動サービスのブートストラップにsystemdを使用します。そのため、上記のコマンドはほとんどのディストリビューションで機能します。


U&Lへようこそ、ご協力ありがとうございます!この質問は現在約8年前のものであるため、受け入れられた答えはその時点では正しかったことを指摘しておきます。systemctlを使用すると、正しいかもしれ、それがために正しいです別の質問
ジェフシャラー

@Princeは詳細な説明をありがとう。Xubuntuでブートスタートアップがどのように機能するかを理解するのに役立ちました。
loved.by.Jesus

0

SlackwareとArch linuxには、起動時にプロセスを停止/開始する同様の方法があり、上記のUbuntuやRedhatスタイルの例とは異なります。

SlackwareとArch Linuxの両方で、shスクリプトはdirectory /etc/rc.dに存在します。通常、デーモンごとに1つのスクリプト、またはサブシステムごとに1つのスクリプトです。

たとえば、Slackwareは、/etc/rc.d/rc.httpdシステムの起動時に適切なタイミングで「start」の引数を使用して呼び出されるスクリプトでApache Webサーバーを起動します。Arch Linuxには異なる名前のスクリプトがありますが、同じようなことが続きます。

Slackwareでは、システムのブート中に何らかのプロセスが開始されないようにするには、/ etc / rc.d内の適切なスクリプトを実行不可にします。次の起動時にApacheが起動しないようにするには:

chmod -x /etc/rc.d/rc.httpd

起動時に開始したApacheを停止するには: /etc/rc.d/rc.httpd stop rootになる必要があります。

Archはもう少し複雑です。シェルスクリプトである/etc/rc.confファイルには、配列DAEMONSがあります。Apacheが起動時に起動しないようにするには、/ etc / rc.confの次の行を変更します。

DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)

この行へ:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)

すでに実行中のApacheを停止するには/etc/rc.d/httpd stop、rootとして実行します。


0

Ubuntu 10.04では、GUIからいくつかのスタートアッププログラムを制御できます。

SystemPreferencesStartup Applications

スタートアップアプリケーションの設定


1
元の画像はもうありません。
シェパン

-1

1)キーボードのスーパーキーをタップします。2)「スタートアップアプリケーション」を検索します。3)無効にするプログラムを選択します。4)worxの場合、この回答のようにヒットします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.