Ваш $opt
переменная будет установлена на слово опции, соответствующее числу что вводы данных пользователем. Если Вы хотите посмотреть на то, какой пользователь, на самом деле введенный, посмотрите на $REPLY
.
Общепринятая практика состоит в том, чтобы использовать изодромный с предварением файл. Каждый раз сценарий выполняется, имейте его, проверяют файл, чтобы видеть, работает ли он уже куда-нибудь. Порядок операций обрисован в общих чертах ниже.
/var/run/yourscriptname.pid
/var/run/yourscriptname.pid
В Вашем случае это сделает, но существуют некоторые случаи, где сценарий можно было бы назвать достаточно быстрым, который во время между проверкой pid и записью pidfile, другой процесс запускает и также не видит pidfile и продолжает выполняться. Можно далее сжать вещи при помощи консультативной блокировки. Это - услуга, которую ОС предоставляет на примерно каждом Unix.
Ссылки:
Трудно сказать от Вашего вопроса, если Вы хотите запуститься с нового задания каждый раз или просто пропустить вращение, если это все еще работает.
Если Вы хотите запуститься новый каждый раз, самый простой взлом должен добавить a killall your_command; your_command
к Вашему крону.
Иначе попробуйте pgrep you_command || your_command
в Вашей строке крона, чтобы только выполниться, если текущий НЕ найден, работая.
Вы могли также стать более необычными и зарегистрировать PID Вашего задания в некотором петлявшем и затем проверить, что петляют для активных заданий перед запуском работы. При нахождении того, можно или выйти и позволить ему работать или уничтожить другой и отметить собственный PID как текущее выполнение того.
pgrep
поиски существующего процесса имени и возвращают true, если находит тот. Так как Вы хотите выполнить свою команду, только если ей не удается найти один, используйте ||
логическая операция ИЛИ для выполнения команды, если pgrep
возвращает false.
– Caleb
10.06.2011, 14:32
./test.php
. Необходимо смочь к prgrep для этого намного легче.
– Caleb
16.06.2011, 23:28