Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> демонизация программы. 
V
    Опции темы
phpsc
Дата 12.1.2011, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



Программа демонизируется если её запустить с терминала вручную от рута. 
Выполняет свои функции:
1держит соединение с mysql/
2.создание файлов и папок.
Код

// CREATE PROCESS
pid_t pid,sid;
    
pid = fork();    
if (pid<0) {exit(EXIT_FAILURE);}
        else if (pid>0) {exit(EXIT_SUCCESS);}
sid = setsid();
if (sid<0) { exit(EXIT_FAILURE);}


Если записать в автозапуск в файл /etc/rc.local , то при перезагрузке она висит в процессах.
1держит соединение с mysql/ ВЫПОЛНЯЕТ
2.создание файлов и папок. НЕВЫПОЛНЯЕТ

В чем может быть проблема?

Это сообщение отредактировал(а) phpsc - 12.1.2011, 22:09
--------------------
Социальная сеть
PM MAIL   Вверх
TimberWolf
Дата 12.1.2011, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.1.2007
Где: Тула

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



Цитата(phpsc @  12.1.2011,  21:53 Найти цитируемый пост)
1держит соединение с mysql/ ВЫПОЛНЯЕТ
2.создание файлов и папок. НЕВЫПОЛНЯЕТ

В приведенном вами исходном коде этого вообще нет. А нет вопроса - нет ответа. Процесс-демон вы делаете неверно. Необходимо "избавиться" от сигналов, связанных с терминальным вводом-выводом (SIGTTIN, SIGTTOUT итд), а также закрыть все файловые дескрипторы.
PM MAIL Jabber   Вверх
boostcoder
Дата 12.1.2011, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



думал раньше кинуть эту ссылку: http://forum.try-catch.ru/index.php?topic=265.0
но подумал что ТС откажется, со словами что все сложно))
PM WWW   Вверх
phpsc
Дата 13.1.2011, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



boostcooder, спец конечно))

но при попытке компиляции той программы с ссылки данном bostcooder'ом
выдаются:
g++ dae.cpp -I /usr/include/mysql -L /usr/lib/mysql/ -lmysqlclient
dae.cpp: In function ‘int main(int, char**)’:
dae.cpp:62: error: invalid conversion from ‘const void*’ to ‘void*’
dae.cpp:65: error: invalid conversion from ‘const void*’ to ‘void*’

Натолкните на мысль куда "рыть" :=(
--------------------
Социальная сеть
PM MAIL   Вверх
boostcoder
Дата 13.1.2011, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата(phpsc @  13.1.2011,  00:00 Найти цитируемый пост)
boostcooder, спец конечно))

я только учусь)

Цитата(phpsc @  13.1.2011,  00:00 Найти цитируемый пост)
dae.cpp:62: error: invalid conversion from ‘const void*’ to ‘void*’
dae.cpp:65: error: invalid conversion from ‘const void*’ to ‘void*’

что в этих строках?

PM WWW   Вверх
phpsc
Дата 13.1.2011, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



несповпадение типов данных.. плохо понимаю, но похоже что переменнцю хотим записать указатель. в общем, не знаю, какое то несовпадение типов.
thread_args.reread_arg = "reread_arg";
нужно привести к нужному типу? в данном случае записать как указатель в памяти?

p.s: как на экзамене....сидишь и тупо ничего не понимаешь.

Это сообщение отредактировал(а) phpsc - 13.1.2011, 00:10
--------------------
Социальная сеть
PM MAIL   Вверх
boostcoder
Дата 13.1.2011, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата(phpsc @  13.1.2011,  00:07 Найти цитируемый пост)
thread_args.reread_arg = "reread_arg";

thread_args.reread_arg = (void*)"reread_arg";

константность нужно убрать.
PM WWW   Вверх
phpsc
Дата 13.1.2011, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



узнаю новое))

теперь при компиляции в терминале выдает следующее:
gcc dae.cpp
Цитата
/tmp/ccWqheOg.o: In function `main':
dae.cpp:(.text+0x6ed): undefined reference to `pthread_sigmask'
dae.cpp:(.text+0x75c): undefined reference to `pthread_create'
/tmp/ccWqheOg.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

и исполняемый файл не создается :-(

Какую либу нужно подлюкчить при компиляции? это ведь ошибки линковки?

Это сообщение отредактировал(а) phpsc - 13.1.2011, 00:32
--------------------
Социальная сеть
PM MAIL   Вверх
boostcoder
Дата 13.1.2011, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата(phpsc @  13.1.2011,  00:20 Найти цитируемый пост)
Какую либу нужно подлюкчить при компиляции?

-lpthread

Цитата(phpsc @  13.1.2011,  00:20 Найти цитируемый пост)
это ведь ошибки линковки?

угу smile 
PM WWW   Вверх
phpsc
Дата 13.1.2011, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



boostcoder, пожалуйста ответь на вопрос, надеюсь он будет последним 

gcc dae.cpp -I /usr/include/mysql -L /usr/lib/mysql/ -lmysqlclient -lpthread
Цитата
/tmp/ccqdySPX.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
еще одной либы нет? но какой? я не умею определять их по названиям :-(


Это сообщение отредактировал(а) phpsc - 13.1.2011, 00:50
--------------------
Социальная сеть
PM MAIL   Вверх
boostcoder
Дата 13.1.2011, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата

g++ dae.cpp -I /usr/include/mysql -L /usr/lib/mysql/ -lmysqlclient -lpthread

PM WWW   Вверх
phpsc
Дата 13.1.2011, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



ммммда)))
boostсoder профи!

С предоставленным исходными кодами от boostcoder'a моя программа успешно : создает файлы и папки опрашивая бд mysql.
И делает программа это даже при старте системы debian. Файл с программой запускается из /etc/rc.local.


Это сообщение отредактировал(а) phpsc - 13.1.2011, 02:48
--------------------
Социальная сеть
PM MAIL   Вверх
fish9370
  Дата 13.1.2011, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 2
Всего: 1



помечай вопрос решенным, и не имей привычки форкать темы без надобности, 
я об этом: http://forum.vingrad.ru/forum/topic-319747.html


--------------------
undefined
PM MAIL WWW ICQ   Вверх
phpsc
Дата 13.1.2011, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



ответ на вопрос получен..программа успешно работает как демон.
--------------------
Социальная сеть
PM MAIL   Вверх
phpsc
Дата 13.1.2011, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

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



ответ на вопрос получен..программа успешно работает как демон.
--------------------
Социальная сеть
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




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


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

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