「Linuxのシェルスクリプトで多重起動を防止する」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の1版が非表示) | |||
| 8行目: | 8行目: | ||
スクリプト自体はシンプルなものなので[[bash]]でも[[zsh]]でも動くとは思う。 | スクリプト自体はシンプルなものなので[[bash]]でも[[zsh]]でも動くとは思う。 | ||
[[Linux]]には[[ワンライナー]]が好きな人も多いが、あえて噛み砕いた。 | |||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
| 13行目: | 14行目: | ||
# 自分のプロセス名を得る | # 自分のプロセス名を得る | ||
PROCESSNAME=`basename $0` | PROCESSNAME=`basename $0` | ||
# pidofで同じプロセス名のpidたちを取得する | # pidofで同じプロセス名のpidたちを取得する | ||
PROCESSIDS=`pidof -x $PROCESSNAME` | PROCESSIDS=`pidof -x $PROCESSNAME` | ||
# awkで配列の要素数を数える(プロセス数を得る) | # awkで配列の要素数を数える(プロセス数を得る) | ||
PROCESSNUM=`echo $PROCESSIDS | awk '{print NF}'` | PROCESSNUM=`echo $PROCESSIDS | awk '{print NF}'` | ||
# プロセス数が1より大きければ多重起動 | # プロセス数が1より大きければ多重起動 | ||
if [ $PROCESSNUM -gt 1 ]; then | if [ $PROCESSNUM -gt 1 ]; then | ||