Shell-Scripting (BASH): Каков наилучший способ включить / выключить скрипт, который не может завершиться сам? - PullRequest
1 голос
/ 13 августа 2010

Я хотел бы иметь сценарий с бесконечным циклом, который убивает все процессы, созданные этим сценарием, когда он запускается снова.

Так что в основном вы запускаете сценарий через терминал:

bash poll.sh

и он работает бесконечно, вы открываете другой терминал и снова

bash poll.sh

ивсе процессы poll.sh будут убиты.

Каков наилучший способ сделать это?Моей первой мыслью было установить переменные окружения, например, export POLLRUNNING = true , и poll.sh реализовал бы что-то вроде if [$ POLLRUNNING = true];выход 1

Моя вторая идея заключалась в том, чтобы работать с touch .isrunning и оператором для запроса этого файла.

Как бы вы это сделали?

1 Ответ

1 голос
/ 13 августа 2010

pidof(8) поддерживает флаг -x для указания сценариев; он также поддерживает флаг -o omitpid для исключения определенных пидов. Итак:

#!/bin/bash

PIDS=`pidof -o $$ -x poll.sh`

if [ x$PIDS != x ]
    then kill -s SIGTERM $PIDS
fi

sleep 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...