Модераторы: powerfox, ZeeLax

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> При демона процесса, становится zombie 
V
    Опции темы
Rickert
Дата 21.5.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



bilbobagginz, ok smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Rickert
Дата 22.5.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Смотрел код init'а. Я понять не могу одной вещи. Там fork'а вообще нет. Смотрите как получается: когда мы стартуем что - либо, не из какого-либо приложения, по умолчанию pid родителя нового процесса (по сути программы), ppid, выставляется = pid'у init'а. в таком случае вопрос: что делать? smile 
В конце init'а бегает бесконечный цикл, со sleep'ом: как получить уведомление о том, что один из "детей" перешёл в состояние zombie, то бишь собирается завершиться, и соответственно, помочь ему, вызвав wait?

Это сообщение отредактировал(а) Rickert - 22.5.2007, 10:55


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
bilbobagginz
Дата 23.5.2007, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



посмотри что такое signal.
после смерти каждого "дитяти" родитель получает SIGCHILD
нужно писАть обработчик этого сигнала.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Rickert
Дата 23.5.2007, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Сейчас посмотрим...

Это сообщение отредактировал(а) Rickert - 23.5.2007, 04:22


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Rickert
Дата 23.5.2007, 04:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Делаю так:
Код

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <glob.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <signal.h>

void sigCatch()
{
  FILE* file = fopen("/tmp/initconf.pid.log", "a+");

  pid_t pid = getpid();
  int status;

  pid = waitpid(-1, &status, 0);
  fprintf(file, "PID is catched on death\n");
  fclose(file);
}

int main(int argc, char *argv[]) {
    system("/bin/mount -n /tmp");
    system("/bin/mount -n /proc");
    system("/bin/mount -n /sys");
    system("/sbin/modprobe psmouse");
    system("/sbin/modprobe drm");
    system("/bin/umount /");
    system("/bin/mount -n -t ext2 /dev/sda2 / -o rw,remount");
    getedid();
    system("/sbin/modprobe sd_mod");
    system("/sbin/modprobe usbmouse");
    system("/sbin/modprobe usblp");
    system("mkdir /tmp/conf");
    system("/bin/bash");
    signal(SIGCHLD, sigCatch);
    
    while(1)
      sleep(1);
    
    return 0;
}


Файл /tmp/initconf.pid.log не создаётся.
То, что приведено - исходник init'а с которого грузится система.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Rickert
Дата 23.5.2007, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Чувствую придётся брать исходный инит и править его руками... Аминь


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
bilbobagginz
Дата 23.5.2007, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



честно говоря дебажить не хочется этот код, но:
1. системные вызовы принято спрашивать что они вернули.
2. советуют использовать не signal, а sigaction
3. что за вызов getedid() ? ( имелось в виду getegid() ? )
4. есть стандартный init, к которому можно обратиться и посмотреть как там все написано.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Rickert
Дата 23.5.2007, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



bilbobagginz, 
Цитата(bilbobagginz @  23.5.2007,  06:22 Найти цитируемый пост)
3. что за вызов getedid() ? ( имелось в виду getegid() ? )

Функция самописная, не обращая внимания.
Цитата(bilbobagginz @  23.5.2007,  06:22 Найти цитируемый пост)
. есть стандартный init, к которому можно обратиться и посмотреть как там все написано.

Вот, ищу исходник инита от слаки сейчас.
Что-то на http://packages.slackware.it не видать пока


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
bilbobagginz
Дата 23.5.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



зачем вам было переписать init  ?



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Rickert
Дата 23.5.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Потому что надо ускорить загрузку ОСи. Распараллеливать процессы загрузки некоторых модулей и грузить ещё доп. ПО. Как всегда: директор заявил в документации, а программисты - мучайся smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
bilbobagginz
Дата 23.5.2007, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



init-ng не смотрели ?


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Rickert
Дата 24.5.2007, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



bilbobagginz, что это такое? Можно по-подробнее?

Это сообщение отредактировал(а) Rickert - 24.5.2007, 06:56


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
bilbobagginz
Дата 24.5.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



Rickert, поток вопросов сам по себе дело положительное, но качество оных не на пике, поэтому начинаю острить (или выеживаться, называем как удобно).
и так на вопрос:
Цитата

bilbobagginz, что это такое? Можно по-подробнее?

ответ: нет, нельзя подробнее, это секретная информация. не раскрою.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Rickert
Дата 24.5.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Юмор оценил smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.