起動時に実行するようにサービスを構成するにはどうすればよいですか


244

次のserviceコマンドを使用して手動で起動すると、正常に実行されるデーモンがあります。

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

ただし、PCの再起動時に自動起動するようには設定されていません。

PCに誰もログインしていない場合でも、自動的に起動するように設定するにはどうすればよいですか?


@ user154721 autostartを機能させるためにupdate-rc.dに与えた引数は何ですか?さまざまなオプションを試しましたが、運はありませんでした。
BennyTheBen

自動起動プログラムはで構成されたautostartマニフェストやで*.service同様のように、複数の場所にあるファイルinit.dまたはcrontab。参照:unix.stackexchange.com/a/525845/43233
Noam Manos

回答:


281
sudo update-rc.d minidlna defaults

これにより、サービスが自動起動システムに追加されます。しかし、あなたが得るなら:

System start/stop links for /etc/init.d/minidlna already exist.

コマンドを実行する

sudo update-rc.d minidlna enable

PS:詳細については、コマンドを入力してupdate-rc.dのマニュアルページを参照してください。man update-rc.d


7
感謝しますが、そのコマンドを実行したときにこの出力が表示されたらどうなりますか?:System start/stop links for /etc/init.d/minidlna already exist.
リカルドレイエス

1
minidlnaがログファイルに書き込まない場合、どこにも見つかりません。起動時にネットワーク接続がないために失敗する可能性はありますか?デバッグやロギングをオンにして問題を見つけられる場合は、構成を確認してください。
ラッセポールセン

8
@RicardoReyesはsudo update-rc.d -f minidlna remove、既存のリンクを削除するために使用します。
ドッグウェザー14年

5
ファイルが存在しない:/etc/init.d/usermanage:私はエラー更新-rc.dの下に取得しています
Rizwanパテル

2
私も同じエラーを受け取りましたupdate-rc.d: /etc/init.d/mongod: file does not exist。その後、sudo systemctl enable mongod.service私のために働いた。
エクスプローラー

36

ブートプロセスでスクリプトを実行する必要がある場合があります。たとえば、ブートプロセスでiptables configを実行します。したがって、再起動するたびにスクリプトを手動で実行する必要はありません。

スクリプトを/etc/init.d/rc.localファイルに追加することにより、Ubuntuのブートプロセスでスクリプトを実行できます。以下の手順をご覧ください。

  1. /etc/rc.local次のコマンドでファイルを開きます:

    vim /etc/rc.local
    
  2. ブートプロセスで実行するスクリプトを追加します。たとえば、次のとおりです。

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. そのファイルに含まれているコメントを確認し、出口0が最後にあることを確認してください。

  4. ファイルを保存します。そして、スクリプトは起動プロセスで実行されます。


2
Ubuntu 12.04の/etc/init.d/rc.localのコメントには、「簡単な説明:/etc/rc.localが存在する場合は実行する」と書かれているため、/ etc / rc.localにスクリプトを追加することをお勧めします。
李サンヒョン

このメソッドは、サービスに「シャットダウン」コマンドを発行するか、OSのシャットダウン時にプロセスを強制終了しますか?
ヴァディムチェカン14

Vadim、rc.localはブート時に実行されるだけで、シャットダウン時には何も達成されません。プロセスは、シャットダウン時にOSによって強制終了される可能性があります。
Weboide 14

1
FYI:差rc.localがinitに追加Vsは、rc.localには、初期化、起動シーケンスの終了時ではなく、その一部として実行されることである
BobTuckerman

35
  • 起動時にデーモンを起動するには:

    update-rc.d service_name defaults
    
  • 削除する:

    update-rc.d -f service_name remove
    

デフォルト=>デフォルトの実行レベル2,3,4および5

例:

update-rc.d tomcat7 defaults

1
このコマンドを実行すると、「/ etc / init.d / tomcat7のシステム開始/停止リンクが既に存在します」というメッセージが表示されます。ただし、再起動してもTomcatは起動しません。常に「service tomcat7 start」を実行する必要があります。
ジョンリトル

私の場合、sudo update-rc.d myservice defaultは常に出力なしで完了し、サービスは起動時に起動せず、sudo service myservice startでもサイレントに完了します。ただし、sudo /etc/init.d/myservice startは動作します
axk

13

Ubuntu 15.10(またはDebian 8 "jessie")以降では、次のコマンドを使用してminidlna、起動時にサービスが実行されるように設定する必要があります。

sudo systemctl enable minidlna.service

そして、起動時に再び起動しないようにするには:

sudo systemctl disable minidlna.service

これは、で検索できるすべてのサービス名参照で機能しますls /lib/systemd/system/*.service

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