の続き.
参考にしたサイトは
・nobukatsu.jp#jettyのデーモン化
・VINELINUX#chkconfigコマンドによる自動起動の設定
・UNIX LINUX コマンド・シェルスクリプト リファレンス#if文とtestコマンド
では,早速
/etc/init.d/以下にjettyファイルを作成する
$ sudo vim /etc/init.d/jetty作成するファイルは以下の通り
↑のファイルの/usr/local/jettyの部分は自分の環境に合わせる.
/etc/init.d/jettyに実行権限追加
$ sudo chmod 755 /etc/init.d/jetty $ ls -l /etc/init.d/jetty -rwxr-xr-x XXX XXXX XXXX 日付とか /etc/init.d/jetty・nobukatsu.jp#jettyのデーモン化 で紹介されているのと違う点は,bashコマンドが使えない環境でも,daemonが動く,という点.
作成したjettyファイル内の
if [ -z `/usr/bin/pgrep -f "java -jar start.jar"` ];の部分だが,このバッククォート「`」でくくられている部分を,
if [ -z $(/usr/bin/pgrep -f "java -jar start.jar") ];のように書くと,bashコマンドがデフォルトで使えないようなSolarisでは動かないという指摘を先輩エンジニアから受けました.
bashコマンドがないような環境を使用しない人にとってはあまり関係のない話です.今回は古の技術を尊重してやってみました.
ちなみに,Centでshとbashの関係を調べてみると,
$ ls -alF /bin/sh /bin/sh -> bash*という風になっていて,shにはbashのシンボリックが貼られていることがわかる.
ついでにMacOS Xでは
$ ls -alF /bin/sh /bin/sh* $ ls -alF /bin/bash /bin/bash*てな感じです.微妙に違う…
で,ちょっと脱線しましたが最後にデーモンを動かしてみる.
daemonを動かす
$ sudo service jetty start