Отправляет email-рассылки с помощью сервиса Sendsay

timeout

Приветствую.

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

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Thu, 23 Oct 2003 21:58:25 +0000 (GMT) (#11241)

 

Ответы:

Alexander S. Yurkov wrote:

Это просто. Нужно написать скрипт.

запускаем нужную программу в бекграунд
получаем её пид
спим нужное время
убиваем процесс (пид известен)

Всё.
Попробуй написать этот скрипт самостоятельно.
Литеретура:
man bash
man ps
man kill

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mike Potopaev Thu, 23 Oct 2003 22:10:43 +0600 (#11245)

 

И еще возражение.

On Thu, 23 Oct 2003, Mike Potopaev wrote:

А кто сказал, что программа должна работать именно в бэкграунде? А если
нет? Такое тоже может понадобиться (хоть и редко).

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 14:52:45 +0000 (GMT) (#11392)

 

Приветствую.

On Thu, 23 Oct 2003, Mike Potopaev wrote:

Все просто, кроме как получить пид. По имени програмы (файла)? Ну так
может быть несколько процессов с одним именем (несколько запусков одного
файла). Так можно убить совсем не то, что надо. Да и "перелопачивать"
всю выдачу ps и искать нужный пид... Как-то не естественно все это.
Неужели нет более нормального механизма.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 14:44:24 +0000 (GMT) (#11393)

 

i686)

если запускать при помощи fork, то pid получить элементарно.
--

С наилучшими пожеланиями
Крохин Анатолий
icq 20060869

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Крохин ААнатолий ААлександрович Fri, 24 Oct 2003 13:11:53 +0400 (#11407)

 

On Fri, 24 Oct 2003, Крохин ААнатолий ААлександрович wrote:

А разве можно fork вызвать из bash-скрипта (я не очень хорошо знаю bash)?
Если не писать для этого програму на С, конечно... Хотя програмка
примитивная, но не хочется...

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 17:36:18 +0000 (GMT) (#11446)

 

i686)

Можно не на C, а на Perl. IMHO не "напряжнее", чем на bash.
Опять-таки скриптовый язык...

--

С наилучшими пожеланиями
Крохин Анатолий
icq 20060869

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Крохин ААнатолий ААлександрович Fri, 24 Oct 2003 15:42:41 +0400 (#11451)

 

On Friday 24 October 2003 20:36, Alexander S. Yurkov wrote:

А почему сразу Це? Рекомендую Перл.

Ответить   george Fri, 24 Oct 2003 14:47:17 +0300 (#11452)

 

Alexander S. Yurkov пишет:

$! - Expands to the process ID of the most recently executed background
(asynchronous) command.
И ничего перелопачивать не надо.

Ответить   Max Vasin Fri, 24 Oct 2003 13:29:52 +0400 (#11409)

 

Приветствую.

On Fri, 24 Oct 2003, Max Vasin wrote:

Замечательно. Хотя всеже сомнения такого рода: это пид последней команды,
запущенной данным shell, или вообще последней команды, во всей системе?
Одновременно могут работать несколько shell и, хотя вероятность небольшая
(промежуток времени небольшой), в последнем случае можно получить не тот
PID.

Кроме того, как быть если команда выполняется отнють не в бэкграунде
а таймоут всеже нужен. До всех этих sleep и kill скрипт просто не дойдет
пока програма работает. Можно, конечно, запустить програму в бэкграунде,
получить PID, передать его вместе со временем останова другому shell
(можно даже проще с помощью at) и потом достать програму из бэкграунда с
помощью fg. Но для последнего нужен не PID, а jobspec. Как его определить?
Если бы не было других shell то можно было бы дать просто fg и достать
последний процесс. Но из-за работы других shell нужный job может оказаться
отнють не последним. Или fg работает только "в контексте данного shell"? В
ман это не уточняется (во всяком случае я не нашел).

И еще вопрос: "освободившеся" PID новым процессам не назначаются?

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 17:22:46 +0000 (GMT) (#11448)

 

Alexander S. Yurkov пишет:

Ну дык скрипт можно запускать и не в бэкграунде. А в скрипте команду всегда
нужно запускать в бэкграунде. Или на С можно написать прогу...

Теоретически может назначиться, но ИМХО очень не скоро.

Ответить   Max Vasin Fri, 24 Oct 2003 16:00:58 +0400 (#11475)

 

On Fri, 24 Oct 2003, Max Vasin wrote:

Если теоретически может, то так делать нельзя! Такой догмат веры :-)

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 18:28:47 +0000 (GMT) (#11492)

 

ага, а на pid отведено 2 байта, при интенсивном процессе создания/убивания
процессов можно случайно убить не тот процесс, ибо наша-то программа давно
выполнилась, а мы "проснувшись" убиваем другую, которая обернув 2-байта, имеет
тот же самый pid.

C уважением, Kolotov Alexandr aka mr. Эбола
отвечать: myscri***@e*****.ru
ICQ: 100349254

| Registered Linux user # 236664 |
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Kolotov Alexandr Fri, 24 Oct 2003 14:51:26 +0400 (#11430)

 

On Fri, 24 Oct 2003, Kolotov Alexandr wrote:

Вот-вот. Даже если освободившиеся PID не используются будут проблемы (а я
о такой возможности не подумал!). Да неужели сама система не умеет
запускать програмы с таймаутом? Даже такая древность как VM370 умела...

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 17:48:13 +0000 (GMT) (#11469)

 

On Friday 24 October 2003 21:48, you wrote:

Коллеги, зачем усложнять? UNIX гораздо проще всех VM370 вместе взятых...
Просто берем скрипт (bash, скажем) и пишем в нем:

echo Starting!
our_program &

PID=$!

sleep 1000

kill -9 $PID

Таким образом, сначала стартует bash, а из себя запускает программу. Если
программа кончится раньше, чем bash выйдет из sleep - соответствующий pid не

освободится - процесс превратится в zomby и pid будет занят до тех пор, пока

bash не сделает wait или сам не кончится - в этом случае процесс будет
перевешен на init (или на процесс с pid=1, если это не init - можно и так
запуститься), а init всегда реагирует на SIGCHLD (посылается родителю, когда

дочерний процесс кончился). Вот, вроде, и вся механика.

Ответить   Vladimir Efremov Fri, 24 Oct 2003 17:38:04 +0400 (#11501)

 

Приветствую.

On Fri, 24 Oct 2003, Vladimir Efremov wrote:

Если PID не освобождается, то все, конечно, проще. Это
понятно. Но как сделать то же самое, но с our_program не в бэкграунде.
Например хочу MidnightComander запустить с таймаутом (чисто для примера).
Я проверил, если в точности этот скрипт просто подставить mc вместо
our_program то mc экране не появляется. Чего и следовало ожидать.
Конечно, если убрать & то mc будет, зато не будет таймаута...

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 20:27:07 +0000 (GMT) (#11524)

 

On Saturday 25 October 2003 00:27, you wrote:

Скрипт:
begin
#!/bin/bash -x
echo Starting!
/usr/bin/mc &

PID=$!

sleep 5

kill -9 $PID

end

работает! Несколько более сложный вопрос (на который я сейчас ответа не знаю)

- что делать, если запускается программа, которая что-то пытается прочитать
из stdin. Похоже, что ей сразу возвращается конец файла - пробовал на таком
скрипте вместо mc:

#!/bin/bash
echo Starting test1!

read s
echo $s

Не работает - read сразу возвращает пустую строку.

Ответить   Vladimir Efremov Fri, 24 Oct 2003 19:59:22 +0400 (#11556)

 

On Friday 24 October 2003 18:59, Vladimir Efremov wrote:

Once more: expect ;-)

Ответить   george Fri, 24 Oct 2003 18:50:50 +0300 (#11558)

 

On Fri, 24 Oct 2003, Vladimir Efremov wrote:

А у меня не работает. В точности тот же скрипт. Я думал, что дело в -x
в bash - нет с ним тоже не работает. Что-то тут не совсем чисто.
Да и вообще это не запуск с таймаутом. Если программа завершается
раньше, скрипт продолжает ждать sleep. Не подходит.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 22:55:11 +0000 (GMT) (#11589)

 

Alexander S. Yurkov wrote:

Блин, ну зачем всё усложнять?
Стояла задача снять программу, если она не отработает через заданное время.
Задача полностью решена.
sleep - ресурсов потребляет 0.00% с хвостиком.
Почему не подходит?
Нужно тогда написать немного более сложную систему из двух скриптов,
один из которых вызывает второй и ....
Думайте.
Это не так сложно.
Только зачем?

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mike Potopaev Fri, 24 Oct 2003 23:39:42 +0600 (#11611)

 

Приветствую.

On Fri, 24 Oct 2003, Mike Potopaev wrote:

Почему-почему... Потому, что управление передается не в тот момент
времени, читайте внимательней.

Тогда уж не два а четыре скрипта. Один головной, один для нужного
процесса, один для sleep и еще один для продолжения. Второй и третий
вызывают четвертый по своему завершению. В общем "поездка из СПб
в Москву через Вадивосток", доехать конечно можно и так:-)

На самом деле тут должно быть что-то простое вроде:

trap exit SIGCHLD
program &
sleep $TIME

Но что-то у меня в таком виде trap не работает а в ман написано так
мало... Кроме того, не вполне понимаю две вещи: всегда ли потомки
завершаются при завершении родителя (в данном случае будет ли
принудительное завершение program при завершении bash, исполняющего этот
скрипт) и как работает сигнал SIGCHLD - он приходит от всех потомков при
их завершении или только от "потомков первого уровня". Т.е. к
примеру процесс 1 порождает процесс 2 а тот, в свою очередь - 3. При
завершении процесса 3 получит ли процесс 1 сигнал SIGCHLD или его получит
только процесс 2?

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 25 Oct 2003 09:20:48 +0000 (GMT) (#11657)

 

On Saturday 25 October 2003 13:20, you wrote:

Похоже, что сигналы управления процессами - особенные, и при помощи trap не
перехватываются (действительно, зачем бы тогда wait, fg и bd были?). В
документации что-то я подробностей не нашел, так что самый верный путь - как

в звездных войнах: use source! Посмотреть исходники bash, что-ли? Linux
все-таки, все под рукой...

Ответить   Vladimir Efremov Sat, 25 Oct 2003 15:00:03 +0400 (#11726)

 

On Saturday 25 October 2003 13:20, you wrote:
Вот еще:

Нет, не всегда. Дети завершаются тогда, когда они входят в группу процессов.

Группа процессов, например, автоматически организуется, если shell - это
login shell. Правда, как из bash стартовать процесс и сказать, что он будет
главный в группе - я что-то не припоминаю - может кто вспомнит? Да и можно ли

это вообще?

Процесс 2. А если он кончился - получит init (т.е. никто не получит). И это
не очень здорово на практике - скажем, я не знаю простого решения задачи
проследить завершение всех процессов (и подпроцессов - целого дерева),
запущенного из какого-то главного процесса. Или тут что-то с группами надо
помараковать?

Ответить   Vladimir Efremov Sat, 25 Oct 2003 15:09:38 +0400 (#11732)

 

On Sat, 25 Oct 2003, Vladimir Efremov wrote:

ли

Если это невозможно, то это весьма печально. Взять ту же проблему запуска
с таймаутом. Все получилось, да? А если этот процесс (который мы
хотим запустить с таймаутом) потомков наплодил? Их тоже как-то
искать-убивать?

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 25 Oct 2003 17:33:44 +0000 (GMT) (#11755)

 

On Sat, 25 Oct 2003, Vladimir Efremov wrote:

Похоже это просто. Надо взять отрицательный PID. Т.е. если у головного
процесса, к примеру, PID=241, то kill -s 9 '-241' убивает его и всех его
потомков, в отличие от положительного PID, когда потомки остаются живы. Во
всяком случае на одном примере у меня только что получилось именно так.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 25 Oct 2003 18:35:21 +0000 (GMT) (#11780)

 

On Saturday 25 October 2003 02:55, you wrote:

В общем, работающий скрипт такой:
---------------------------------------8<#!/bin/bash
# Timeout/child finish test program.
#
# test.sf timeout
#
echo Starting!

finalize ()
{
echo Finalizing reason: $1
exit
}

(sleep $1; kill -s SIGUSR1 $$) &
sleep_pid=$!

программа_которую_надо_запустить &
PID=$!

trap "kill -9 $PID; finalize timeout" SIGUSR1

wait $PID

kill -9 $sleep_pid
finalize 'child finished'
-------------------------------------8<Функция finalize - это просто для удобства - в нее можно вставить то, что
надо делать для завершения задачи.

Почему у вас не работает с mc - загадка... А чего говорит-то хоть?

Ответить   Vladimir Efremov Sat, 25 Oct 2003 14:54:09 +0400 (#11719)

 

On Sat, 25 Oct 2003, Vladimir Efremov wrote:

А ничего не говорит. Вроде mc начинает работать (очищает экран и в правом
верхнем углу появляется /) а потом виснет. Пока sleep не проснется и не
убьет его. Остался вопрос с запуском програмы пытающейся читать stdin.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 25 Oct 2003 17:12:09 +0000 (GMT) (#11741)

 

ИМХО, тот perl-скрипт от Shema прозрачнее...

C уважением, Kolotov Alexandr aka mr. Эбола
отвечать: myscri***@e*****.ru
ICQ: 100349254

| Registered Linux user # 236664 |
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Kolotov Alexandr Sat, 25 Oct 2003 15:53:52 +0400 (#11767)

 

On Sat, 25 Oct 2003, Kolotov Alexandr wrote:

Я толком не знаю перл, но вроде можно догадаться, что там написано (похоже
на С). Так ИМХО тот перл-скрипт просто неправилен. Если задача завершается
раньше, чем наступит таймаут, то скрипт завершится позже, чем надо.
Соответственно (если это использовать для дальнейшего управления),
передача управления произойдет не в то время, какое надо.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 25 Oct 2003 18:45:22 +0000 (GMT) (#11782)

 

Тогда, к примеру, можно сделать там некоторую переделку:
засыпать не $time секунд, а на 1, но $time раз - ошибка во времени тогда
максимум 1 секунда, а если в некоторый момент $kid все-таки существует, то break
из цикла нафиг. Не так?

C уважением, Kolotov Alexandr aka mr. Эбола
отвечать: myscri***@e*****.ru
ICQ: 100349254

| Registered Linux user # 236664 |
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Kolotov Alexandr Sat, 25 Oct 2003 16:56:43 +0400 (#11788)

 

On Sat, 25 Oct 2003, Kolotov Alexandr wrote:

break

Так можно. Но лучше и естетсвеннее использовать прерывания (сигналы).
В общем мы разобрались как (см. bush-скрипт). Ну и убивать, судя по всему,
надо отрицательный пид (небольшая модификация) чтобы убить и всех
потомков тоже, которые мог нарожать наш процесс. А вообще посмотрите
man 2 kill, там еще что-то про отрицательные сигналы, но под bush
это не работает, я проверил. На каком языке писать
- ну какая разница, суть от этого не меняется. Я вообще Паскаль люблю :-),
когда-то давно любил фортран, сейчас юникс осваиваю - глядишь С
полюблю... Но, конечно, ассемблер (в аппаратнозависимых частях) - это
любовь навечно :-)

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 25 Oct 2003 19:22:40 +0000 (GMT) (#11793)

 

On Saturday 25 October 2003 15:53, you wrote:

Может и прозрачнее, но делает не то - если kid кончится раньше timeout -
перловка все равно будет ждать. Это не всегда хорошо - если, скажем, надо
ресурсы освободить, протокол написать и т.п. Похоже без дополнительного
сигнала не обойтись.

А вообще (я уж достаточно попрограммировал на sh, perl, python) python самый

прозрачный. perl не зря называют write-only языком. Впрочем, у каждого языка

свои любители :)

Ответить   Vladimir Efremov Sat, 25 Oct 2003 17:10:36 +0400 (#11787)

 

Вопросец может и не в тему но все таки///
Кто нить знает как настроить учет трафика для локальной сети с
динамическим отрубанием пользователя (именно пользователя а не ip)!
Кто нить может че нить посоветовать?хотябы///

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   ocsy 27 Oct 2003 11:37:27 +0300 (#12113)

 

Приветствую.

On Fri, 24 Oct 2003, Vladimir Efremov wrote:

Да и вообще это по существу не запуск програмы с таймаутом. После того,
как програма завершится или наступит таймаут (уж что раньше) надо что-то
там дальше делать. А тут придется ждать пока sleep проснется (раньше этот
скрипт не завершится :-( ). Даже если програма завершилась намного раньше.
Так уж не знаю чем 'UNIX проще всех VM370 вместе взятых'. Еще и програму
писать, перехватывающую прерывание (при этом разбираться какое и как) -
совсем 'просто', ничего не скажешь!

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 21:12:56 +0000 (GMT) (#11545)

 

On Saturday 25 October 2003 01:12, you wrote:

Вот тут основная трудность в слове "или" - если просто нужно подождать
завершения программы - достаточно выполнить команду wait $PID. Она вернет и
код возврата процесса. Но если надо действия выполнять, когда "програма
завершится или наступит таймаут" - тут я сразу не соображу, как лучше - и
sleep, и wait останавливают sh, он ждет соответствующего сигнала.

Да не программу, а скрипт ;) Конечно, тоже программа...

Сигналы перехватываются и из bash, достаточно установить соответствующий
обработчик сигналов (trap, если я помню).

Насчет простоты - это я к слову. Я имел в виду, что не надо знать, как
решается (администрируется) конкретная задача - можно самому собрать решение

из "подручного материала". Мало-ли какие бывают задачи - создатели OS
предусмотреть всего не могут. В UNIX гибкость интерпретатора команд высокая.

Ответить   Vladimir Efremov Fri, 24 Oct 2003 20:50:29 +0400 (#11588)

 

On Fri, 24 Oct 2003, Kolotov Alexandr wrote:

Эту проблему можно победить следующим образом. Нужную програму запустить
как потомка отдельного shell а этот shell заставить заснуть навсегда
после того, как програма завершится. Убивать не програму (которая может
уже завершилась) а ее родителя-shell. Но решение уж очень извращенное :-)
А более нормального нет?

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 24 Oct 2003 18:23:08 +0000 (GMT) (#11478)