タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

shellscriptに関するhildeのブックマーク (2)

  • Linuxでシェルスクリプトの多重起動チェック - longkey1's blog

    if [ $$ != $(pgrep -fo $0) ]; then echo "$($0) is already running." exit 1 fi 以前動かしたら上手くいったと思ったんだけど、今動かしたら駄目だった。 親プロセスから子プロセスを起動する感じだとうまくいかないっぽい。 CRONでの起動とかは駄目らしいんだけど、よく分かっていない。 とりあえず親プロセスも見るように修正した。 if [ $$ != $(pgrep -fo $0) -a ${PPID} != $(pgrep -fo $0) ]; then echo "${0} is already running." exit 1 fi これでちゃんと動くようになった。 他にテンポラリファイルを作成してやるやり方もあったんだけど、Ctrl+Cとかでキャンセルした時に、ファイルが削除されなかったりで、ちょっと面倒臭かったん

  • shell script を書くときの tips 2つ(初心者向け) - tokuhirom's blog

    shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。 autodie っぽくするset -eとすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。 #!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HEREとすると % ./hoge.sh Died at -e line 1. % echo $? 255となって、最後までいかずに死にます。 複数のコマンドを順番に実行するときに便利。 なお、以下のような挙動をするんだそうです。 ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 && または || リストの一部である、 コマンドの返り値が ! で反転されてい

  • 1