URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2366
[ Назад ]

Исходное сообщение
"Как запустить процес в фоне???????"

Отправлено Cronos , 10-Дек-03 08:04 
Сабж. Собственно надо задавить любой вывод от него в консоль или еще куда. >/dev/null& и все подобные махинации ведут к тому, что он ресурсы процика жрет до безумия, а когда вывод на терминал идет то 1-2% всего съедает процессора. Но закрыв терминал - падает и процес...  При запуске из rc.local тоже жрет ресурсы. Такое впечатление, что под него всегда надо держать открытым терминал на удаленной машине.  Система RH 9.0. Кто сталкивался с чем-то подобным???

Содержание

Сообщения в этом обсуждении
"Как запустить процес в фоне???????"
Отправлено Макс Зиналь , 10-Дек-03 19:18 
Гипотеза: при выводе на терминал программа не жрёт ресурсов
процессора *исключительно* вследствие тормознутости терминала
(задержки при выводе).

Решение Прямое: переписать программу, чтоб зря ресурсы не жрала.

Решение Кривое: написать программу, которая читала бы с stdin'а
данные и между чтениями делала бы задержки. Перенаправить
вывод имеющейся программы на новонаписанную через трубу.


"Как запустить процес в фоне???????"
Отправлено emeer , 12-Дек-03 15:16 
>Сабж. Собственно надо задавить любой вывод от него в консоль или еще куда. >/dev/null& и все подобные махинации ведут к тому, что он ресурсы процика жрет до безумия, а когда вывод на терминал идет то 1-2% всего съедает процессора. Но закрыв терминал - падает и процес...  При запуске из rc.local тоже жрет ресурсы. Такое впечатление, что под него всегда надо держать открытым терминал на удаленной машине.  Система RH 9.0. Кто сталкивался с чем-то подобным???

системный вызов daemon() тебе поможет.



"Как запустить процес в фоне???????"
Отправлено Cronos , 16-Дек-03 04:13 
>
>системный вызов daemon() тебе поможет.

А подробней можно? Я в программировании не силен...


"Как запустить процес в фоне???????"
Отправлено Lamr , 14-Янв-04 10:36 

>системный вызов daemon() тебе поможет.

точно!

daemon -f yes


"Как запустить процес в фоне???????"
Отправлено Murr , 09-Янв-04 22:22 
Очень похоже на зацикливание при ERESTARTSYS.
Возможно твоя программа - интерактивная и ковыряет терминал напрямую.
Запусти ее как "./myprog >/dev/null </dev/null 2>/dev/null &" и проверь ls /proc/pid/fd|grep tty. Если она лезет в терминал, то всё понятно - можешь попробовать запускать ее как:

"setsid ./myprog >/dev/null </dev/null 2>/dev/null &"


"Как запустить процес в фоне???????"
Отправлено Zlo , 14-Янв-04 09:53 
screen
потом запускаешь команду
потом Ctrl+A D
подсоединиться screen -r
Вообщем это псевдотерминал, если прога не умеет в бэкграунде работать, через эту тулзу надо запускать


"Как запустить процес в фоне???????"
Отправлено Lamr , 14-Янв-04 10:38 
>что он ресурсы процика жрет до безумия,

понижай приоритет


"Как запустить процес в фоне???????"
Отправлено Murr , 14-Янв-04 11:29 
>>что он ресурсы процика жрет до безумия,
>
>понижай приоритет

В timesharing если есть хотя бы одна задача на выполнение - она будет выполняться, поэтому даже с минимальным приоритетом загрузка будет 100% (другое дело, что более приоритетные задания будут вытеснять быстрее/продолжительнее).