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

find не сделает этого за вас.

создайте сценарий, найдите свои сценарии for _loop.sh и выполните их, например:

#!/bin/bash

for theScript in $(find dir_* -name for_loop.sh); do
  "$theScript" &
done

если скрипт должен быть запущен внутри подкаталога -, попробуйте cdв него раньше, возможно, как cd $(dirname "$theScript") &&. $(basename "$theScript").

мои примеры не проверены детально и не терпимы к ошибкам -...

Редактировать 1:

Как Сато Кацура правильно прокомментировал, приведенный выше сценарий прерывается, если в имени каталога есть пробелы.

Поэтому я переключился на цикл наread:

#!/bin/bash
find dir_* -name for_loop.sh | while IFS= read -r theScript; do
  "$theScript" &
done

1
10.02.2019, 12:45
2 ответа

Расписание ниже указанного скрипта в crontab

*/5****/путь _сценария _

код

#!/bin/bash
process=`ps -eaf | grep -i scriptname | grep -iv 'grep' | wc -l`
if [[ $process > 0 ]]
then
echo "script is running"
else
echo "script is not running"
echo "Need to start the script"
sh scriptname
fi
0
27.01.2020, 23:42

Затем вы можете, если вам нужно, чтобы он работал постоянно, чтобы избежать запуска из crontab, запустить его из inittab с опцией возрождения.

1
27.01.2020, 23:42

Теги

Похожие вопросы