|
|
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
Господа! А есть ли в bash стандартное решение, которое позволяет решить такую простую задачу: Запускаем скрипт и указываем время, по истечении которого скрипт и все порожденные им процессы необходимо прибить, пусть даже по -9 Что то вроде: exec_and_kill myprogram 10min ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 16:21:25 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
список порожденных процессов заранее известен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 16:33:43 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
miksoftсписок порожденных процессов заранее известен? неа. ну допустим в самом простом случае скрипт не пораждает никаких процессов. только он сам и работает, чО делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 16:37:42 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
см. команду at ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 17:26:14 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
в принципе, можно сделать это прямо в самом скрипте, через перехват SIGALRM Например, ждём ввода от пользователя всего 5 секунд: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 21:31:42 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
Спасибо но это не то. Необходимо именно запустить внешний скрипт, даже точнее процесс, это может быть и бинарник, и через определенное время гарантированно его прибить. По поводу команды AT - это шедулер, тоже не то Вообще я удивлен, что в nix нет способа решить мою простую задачу быстро... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 08:41:04 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
ничего сложного: пишем шельник, который запустит, убьет и сам завершится после этого Код: plaintext 1. 2. 3. 4. 5. 6. 7. ./runner.sh & ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 10:12:27 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
cooluserПо поводу команды AT - это шедулер, тоже не топочему же не то? назначаешь на время "через 10 минут" команду kill - чем "не то" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 13:19:57 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
Вот тут обсуждалась подобная задача: Как заставить прогу работать в заданном интервале времени (в фоне)? Особенность — завершение работы для прог со встроенной возможностью запуска в фоне как демон (пример — wget -b). Для них этот кусок кода не подходит: Код: plaintext Короче, внимательно прочитайте по ссылке выше. Проверено. Пример с использованием sed и awk работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2007, 11:21:15 |
|
||
|
Завершить команду после определенного периода времени
|
|||
|---|---|---|---|
|
#18+
Вдогонку: Вышеприведенная ссылка работает только для тех прог, которые при запуске выдают текстовое сообщение с pid-ом запущенного демона. Это сообщение парсится для выделения нужного pid-а. Если при подобном запуске никаких pid-ов не выдаётся, то нужно запомнить pid запускача ($!) и по нему выловить все pid-ы подчинённых процессов. Всё сказанное мной относится к тем прогам, которые могут запускаться как демоны соответствующим ключом (не &). Пример — wget с ключом -b. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2007, 11:47:08 |
|
||
|
|

start [/forum/topic.php?fid=25&tid=1488082]: |
0ms |
get settings: |
8ms |
get forum list: |
25ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 459ms |

| 0 / 0 |
