web-dev-qa-db-ja.com

Linuxのubuntuの下で起動時にプログラムを自動的に実行

重複している可能性があります:
Windows Startupと同等のLinux

私は私のubuntuのlinuxを起動するたびに実行されるようにプログラムが必要だと思います。だから私は私のスタートアッププログラムのリストにそれを追加する必要があるでしょう。たった一つの問題:私は端末を通してそれをする必要があるでしょう。

141
Matteo Monti
Sudo mv /filename /etc/init.d/
Sudo chmod +x /etc/init.d/filename 
Sudo update-rc.d filename defaults 

スクリプトは起動時に起動します。このメソッドはハードリンクとシンボリックリンク(ln)の両方でも機能することに注意してください。

編集する

ブートプロセスのこの時点ではPATHはまだ設定されていないので、絶対パスを使用することが重要です。しかし、Steve HHHによるコメントで指摘されているように、update-rc.dコマンドのフルファイルパス(/etc/init.d/filename)を明示的に宣言することは、ほとんどのバージョンのLinuxでは無効です。 pdate-rc.dのマンページ によると、2番目のパラメータは/etc/init.d/*にあるスクリプトです。これを反映するように上記のコードを更新しました。

もう一つの編集

(Charles Brandtによる)コメントで指摘されているように、/filenameはinitスタイルのスクリプトでなければなりません。良いテンプレートも提供されました - https://github.com/fhd/init-script-template

(GitHubが死んだ場合は悲しいことになるが)可能性のあるリンクの腐敗を避けるためだけに別の記事への別のリンク - http://www.linux.com/learn/tutorials/442412-managing-linux-daemons-with- init-scripts

まだ他の編集

(Russell Yanによる)コメントで指摘されているように、これはupdate-rc.dのデフォルトモードでのみ機能します。

Update-rc.dのマニュアルによると、「レガシーモードを使用するマシンはファイル/etc/init.d/.legacy-bootorderingを持つ」という2つのモードで実行できます。その場合は、コマンドライン引数を通してシーケンスとランレベルの設定を渡す必要があります。

上記の例で設定された同等の引数は次のとおりです。

Sudo update-rc.d filename start 20 2 3 4 5 . stop 20 0 1 6 .

181
Dave Lasley