Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > daemon в фоновом режиме |
Автор: Leksey 21.4.2005, 18:00 |
(OS Sun Solaris) Есть программка, которая прослушивает порт с определенным номером и записывает в файл Ip адрес и доменное имя того, кто подключается к этому порту. Можно ли сделать так, чтобы она работала в фоновом режиме? И как потом её завершить? |
Автор: dvm 22.4.2005, 16:06 |
если я тебя правильно понял.. запусти ее с & в конце только когда из консоли будешь выходить выходи через exit убить прогу можно ессно через kill или killall |
Автор: Leksey 22.4.2005, 17:16 |
Спасибо dvm, я просто думал что & передается как параметр коммандной строки и его должен обрабатывать программист. А нет ли более гуманнного способа убить прогу? |
Автор: bilbobagginz 22.4.2005, 19:11 |
а есть ли "гуманный" способ убить человека ? ну так... чтобы не очень грустно было .... ![]() |
Автор: Leksey 22.4.2005, 21:42 |
Я имею в виду можно ,например, задать таймер, чтобы через некоторое время она закрывалась? И как это сделать? |
Автор: Chuck 23.4.2005, 12:13 | ||
МожнО ![]() Повесить на crond задание, чтоб он убил сам killall прогу через час ![]() |
Автор: Leksey 23.4.2005, 23:10 |
Chuck не мог ты про crond подробнее рассказать.Что за зверь и чем питается? |
Автор: bilbobagginz 25.4.2005, 01:29 |
Лексей. cron - это хронический демон. он делает задания по таблице crontab периодически, как указано в таблице. у каждого юзера есть ящик скриптов cron, их редактируют с помощью команды: crontab -e просматривают с помощью crontab -l не каждый юзер по умолчанию в соляре имеет право запускать такую штуку. выкури man crontab |
Автор: admsasha 25.4.2005, 02:58 | ||
а можно вот так, да ? ![]()
|
Автор: Leksey 25.4.2005, 22:00 |
admsasha Можно поподробнее, ПОЖАЛУЙСТА. ![]() |
Автор: admsasha 26.4.2005, 02:09 | ||
незнаю на сколько так грамотно, но код рабочий ![]() Уважаемые Эксперты, поправте мой код, как грамотно этот код написать, может что дополнительно закрывать надо ? |
Автор: AndrK 13.7.2006, 16:23 | ||||
Не вкурил... а в массиве fd у тебя че??? И че мы закрываем??? |
Автор: GrayCardinal 14.7.2006, 16:22 | ||||||||||
![]()
А черт знает. Смотря с какими флагами собрать. Если без оптимизации, то скорее всего stdin.
![]()
|
Автор: bsa 14.7.2006, 21:30 |
А разве на соляре команда man не работает?!? Или нет страниц 2 и 3 уровней? Человек пишет прогу, работающую с сокетами (а как еще слушать порт?), а не знает элементарных вещей. man fork: http://unixhelp.ed.ac.uk/CGI/man-cgi?fork+2 - это команда, которая позволяет запускать "демоны" из самой программы (а точнее, она создает копию вызвавшего процесса). GrayCardinal, зачем нужно копировать стандартные потоки? Разве fork это сама не делает? Может правильнее их закрывать? |
Автор: GrayCardinal 15.7.2006, 06:57 | ||
bsa,
Так dup2 : 1. _Закрывает_ второй аргумент. 2. Копирует на его место _первый_ аргумент. В данном случае fd (/dev/null) В результате stdin/stdout/stderr получается /dev/null. Кто-то про маны говорил. Хе-хе. ![]() |
Автор: kirjanov 10.8.2006, 13:49 | ||
|