【Ubuntu】OS起動時に自作スクリプトを動かす
こんにちわ!
パンジェンシーです。
Node.jsで作成したWebアプリを動かす場合、自分で動かすなら、サーバーを起動してnpm startとか叩けばいいと思います。
しかし、デモに使うとか自分以外の人が動かす場合などは、「え〜、面倒くさ〜い。電源ボタン押すだけでよくならないの〜」などと言われます。
そこで、今回はUbuntu起動時に自作のスクリプトを自動で動かしてみました。
※本記事作成の際、色々なページを参考にさせていただきました。深く感謝致します。
環境
- Ubuntu 14.04 LTS
自作スクリプトの作成 (creating my script)
ここでは、sampleという自作スクリプトを作ったとします。
スクリプトの場所は、/home/[user_name]/script/です。
※[user_name]は、適宜置き換えます。
だいたいこんな感じです。
sample
#! /bin/sh case "$1" in start) cd /home/[user_name]/script/ npm start > /dev/null 2>&1 & ;; stop) cd /home/[user_name]/script/
npm stop &
;;
esac
exit 0
実行権限を付与しておきます。
$ chmod a+x sample
自作スクリプト起動用プログラム作成 (creating program for starting my script)
sampleという新しいサービスを作成します。
$ cd /etc/init.d $ sudo gedit sample
サービスの制御を行うためのプログラムを作成します。
/etc/init.d/sample
#! /bin/sh ### BEGIN INIT INFO # Provides: sample # Required-Start: $network # Required-Stop: # Should-Start: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: # Description: ### END INIT INFO case "$1" in start) /home/[user_name]/script/sample start ;; stop) /home/[user_name]/script/sample stop ;; *) echo "Usage: service sample {start|stop}" >&2 exit 1 ;; esac exit 0
これも実行権限を付与します。
$ chmod a+x sample
サービスの登録 (registration service)
sysv-rc-confコマンドがインストールされていない場合はインストールします。
$ sudo apt-get install sysv-rc-conf
sampleという新しいサービスを登録します。
$ sudo sysv-rc-conf sample on
あとは、サーバを再起動すれば自作スクリプトが動いてくれるはずです。
サービスの削除 (off service)
サービスの自動起動をさせないようにする場合は
$ sudo sysv-rc-conf sample off
とすればOKです。
現在の設定は、
$ sudo sysv-rc-conf
で確認できます。
サービスの手動起動/停止 (start / stop service manually)
手動でサービスを停止したり、起動したりする場合は、
手動起動
$ sudo service sample start
手動停止
$ sudo service sample stop
とすればOKです。
以上、誰かの参考になれば幸いです。