LINUX.ORG.RU

Как должна выглядеть программа что бы её можно было запустить вместо логонера?


0

0

Вообщем уже теряюсь. Не могу догнать что нужно сделать что бы программа запускалась вместо логонера, т.е. не получается её запустить, вместо неё запускается дефолтный xdm. Начало программый такое же как и у любой QT/KDE'ой программы, поэтому приводить я думаю не нужно. Может у кого есть опыт написания такого софта или чего то похожего. Пытался изучить kdm но там заптанный код и поэтому изучаю код от независимего разработчика, прога так же написсана на QT (mdm) .

Заранее спасибо!!!

★★★★★

Мой код уже изучают? Приятно то как :) А ничего особенного не требуется. Просто ты сам должен ее запустить(из стартового скрипта например)

anonymous
()

А ты не думал, что это сначала запускается XDM, который затем подымает X-сервер, приводя его "на себя"? :-)

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

to anonymous:

оооо.... значит ты и есть тот самый :) А у тя получилось довольно таки ничего, правда возникли некие идеи и вот решил замутить софтинку. Во ты говоришь что нужно запускать скрипт. А просто запустить его нельзя, нужно именно через скрипт???

to no-dashi:

дык насколько я знаю в Дженте, которя я юзаю, есть rc.conf в который прописывается тот логонер который будет запускаться вместо xdm, т.е. там kdm, gdm, xdm и.т.д. Так вот в его качестве я прописал туда свой, а он вместо него запустил xdm.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

И ещё к анонимусу

у тебя ведь ссылка получается на бинарник, т.е.

/etc/rc.d/init.d/mdm start

там в этой функции переменная $MDM а она как я понял ведёт /path/to/bin/of/mdm.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Щас ещё раз проверил. mdm запускается простой командой и без вссяких скриптов, причём Х-ы не запущены.

т.е. даётся команда mdm (я залогинился как роот), после чего экран переключается в графу и появляется экран логонера, причём запуск идёт из бинарника а не из скрипта и этот бинарник каким то образом запускает Х-ы.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Во первых я запускаю не X а xinit. Делается это так: mdm форкается, parent ждет окончания работы child, child же делает exec( xinit + mdmslave ). mdmslave это и есть графический логин. После выхода из X процесс повторяется.

anonymous
()
Ответ на: комментарий от anonymous

Ааа понятно, а то ты говоришь что ничего необычного, а тут сразу форк. Но где ты делаешь форк т.е. в каком файле (ну уж точно не в main.cpp), я чё то смотрел, може плохо а может как, но вообщем не нашёл. И ещё где мэин от mdmslave, в начале src лежи только main.cpp и wrapper.cpp.

И ещё как ты писал прогу, т.е. чем ты пользовался или писал на ощупь.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

if ( execlp( XINIT, XINIT, MDM, 0 ) == -1 ) { exit( SERVER_STOP ); }

это?

но тогда что из себя представляет wrapper это и есть бинарник mdm? Пардон за невежество, зачем два XINIT.

И ещё ты проект делал в KDevelop? Судя по файлам это так, не мог бы ты выслать мне файл проекта mdm.kdevelop на cyclon@land.ru.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

cyclon, я с тебя офигиваю %)
почитай ты какую-нить книжку, или man хотяб на предмет execlp
а то уж очень интересный у тебя способ обучения ;)

P.S. чесное слово ничем не хотел обидеть

anonymous
()
Ответ на: комментарий от anonymous

Была бы книжка под рукой, посмотрел бы, но в сотни километров от цивилизации с которой есть связь только по ноуту через телефон, книг под рукой нет :)

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.