スタートアップからサービスを削除する


9

開発マシン(ラップトップ)にmysqlが(リポジトリから)インストールされており、起動するたびにデーモンを実行する必要はありません。/etc/init/mysql.confを/etc/init/mysql.conf.oldにコピーし、 "start on"行以降のすべてを削除しました。ただし、再起動すると、upstartでmysqldを起動できなくなります。

$ sudo service mysql start
start: Unknown job: mysql

これも失敗します(この時点で何かを試みます):

$ sudo service mysql restart
stop: Unknown job: mysql
start: Unknown job: mysql

これは私の起動スクリプトです:

# /etc/init/mysql.conf
....
start on
stop on starting rc RUNLEVEL=[016]

これはデフォルトのスクリプトです:

# /etc/init/mysql.conf.old
....
start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]

私が今まで読んだすべては、これがサービスが起動時に開始されるのを防ぐことができる方法であると示唆しています。これを行うより良い方法はありますか、それとも、起動スクリプトを間違えましたか?

更新:私はバックアップのconfファイルを/ etc / initから移動して再起動しましたが、おそらく競合があったと思いますが、upstartはまだ言っていますUnknown job: mysql


/ var / log / syslogを確認してください。おそらく/etc/init/mysql.confに構文の問題があることがわかります。「init-checkconf /etc/init/mysql.conf」を試すこともできます
SpamapS

回答:


17

Ubuntu 11.04以降を使用している場合はmanual、/ etc / init内のキーワードおよび.overrideファイルを使用して、自動起動を無効にすることができます。

sudo sh -c 'echo manual >> /etc/init/mysql.override'

manualstart onジョブの構成からスタンザを効果的に削除します。

Ubuntu 10.04を使用している場合、これを行うことができます。

sudo sh -c 'echo start on never >> /etc/init/mysql.conf'

ファイル内の最後 start onのファイルは前のファイルを上書きするため、これは機能しますが、というイベントがないと想定していneverます。


0

この投稿から: "start on"セクションは完全かつ正しい構文である必要があります。

start on runlevel [!0123456]

この行は、実行レベルが[0,1,2,3,4,5,6]にないときに実行されることを意味します(これらは唯一のランレベルなので、これは実行されません)。

別のオプションはchkconfigこの投稿に従って使用することです。

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