Как проверить, что процесс уже запущен?

Предположим у вас есть скрипт

$ cat script.bash 
#!/bin/bash

echo "Hello World"
sleep 10

Как видно, данный скрипт будет просто залипать на 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
$

Залишити відповідь