kidoOooOoooOOom

ゲーム開発やってます

shellで条件式書く時のオプション

dとfを間違えていてハマったのでmemo。

オプション: 使用例: オプションの意味

  • -z: test -z string : string の文字列長が 0 ならば真となる。
  • -n: test -n string : string の文字列長が 0 より大ならば真となる。
  • -d: test -d file : file がディレクトリならば真となる。
  • -f: test -f file : file が普通のファイルならば真となる。
  • -s: test -s file : file が 0 より大きいサイズならば真となる。
  • -e: test -e file : file が存在するならば真となる。
  • -r: test -r file : file が読み取り可能ならば真となる。
  • -w: test -w file : file が書き込み可能ならば真となる。
  • -x: test -x file : file が実行可能ならば真となる。

参考URL
http://shellscript.sunone.me/if_and_test.html

upstartで起動・終了周りのtips

upstartのscirptを書いていて、プロセスをkill -TERMで終了させた場合は勝手にstartしないようにしたかったので、normal exit を使用した。

start on started sshd
stop on shutdown
kill timeout 30

normal exit 0 TERM
respawn
respawn limit 2 5

script
 ....
end script

pre-start script
....
end script

pre-stop script
....
end script

また、再起動処理を永遠に繰り返してほしくないので、respawn limit を使用している。respawn limit 2 5 と書くと、5分以内の2回再起動繰り返したらそれ以上起動しないという意味とのこと。