Linuxに、シェルスクリプト/プロセスを実行しようとしたときに、同じものが実行されている場合は同じものが実行されていることを示すプロンプトが表示され、それ以外の場合は続行するスクリプトまたは方法はありますか。
承認された回答:
このワンライナーを使用して、やりたいことができます:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
例
このスクリプトがあったとしましょう:
$ cat script.bash
#!/bin/bash
echo "Hello World"
sleep 10
ワンライナーを使用する場合:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$
もう一度実行します:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
10197
already running
$
10秒間待ってからもう一度実行すると、再び機能します:
$ pgrep script.bash && echo "already running" || ( ./script.bash & )
Hello World
$