nixp.ru v3.0

30 мая 2017,
вторник,
12:06:15 MSK

DevOps с компанией «Флант»
ROM написал 12 мая 2007 года в 12:52 (578 просмотров) Ведет себя как мужчина; открыл 33 темы в форуме, оставил 63 комментария на сайте.

Взял образец написания сервера. Но там не сказано как «отпустить» консоль.

Подскажите, пожалуйста, что надо написать для этого.

Code Monkey

Что значит отпустить? Почитай как демоны пишутся.

Heavy

Может имелось ввиду «опустить»? Но что с неё(консоли) взять?

ROM

А более конкретные ответы будут?

Дмитрий Шурупов

А более конкретные вопросы?

Вероятно, запустить так:

$ nohup a.out &
ROM

Если это раздел программирования, то причем здесь запуск?

Heavy

Тебе написали, как запустить твою прогу без привязки к консоли. Если это не то, то потрудись сконкретизировать вопрос? Начни с того, что у тебя значит «отпустить» консоль.

Дмитрий Шурупов


int main() {
        if(fork() != 0)return 0;
        sleep(300);
        return 0;
}

??? :)

Code Monkey

гм… и когда Шуруп стал С программистом? :)

ROM

Более конкретный тот-же самый вопрос:

Есть код на С. Надо чтобы скомпилированная программа «демонизовалась» т.е. запустил и она ушла в фон, а консолька (с которой запустил прогу) снова была бы готова для приёма команд.

Доступно объяснил? ;)

Дмитрий Шурупов

So-o-o-o? Код выше это реализует. fork()’нуться и всего-то…

ROM

не форкается

int pid;

pid=fork();

if (pid==-1) {

perror(«Ошибка fork»);

exit(1);

}

if (pid > 0) {

exit(1);

}

if (pid==0) {

int nbytes;

int fout;

/* мы в дочке и этот сокет нам не нужен */

metal
ROM
не форкается

if (pid==0) {

int nbytes;

int fout;

/* мы в дочке и этот сокет нам не нужен */

Какой сокет? и если в дочке, то уже форкается.

ROM

Не форкается — консоль остается за приложением.

вот продолжение:

/* мы в дочке и этот сокет нам не нужен */

close(sockfd);

Сейчас сделал так, что консолька «отпускается» только после первого коннекта к «серверу».