C++: как можно узнать запущена ли данная прога

Модератор: Модераторы разделов

AleXXandEr
Сообщения: 79
ОС: Debian sarge 3.1

C++: как можно узнать запущена ли данная прога

Сообщение AleXXandEr »

я хочу сделать прогу на с++ - сервак и клиент в одной проге
как узнать запущена ли прога (сервак) а от этого уже узнать: запускать клиент, или запускать сервак
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: C++: как можно узнать запущена ли данная прога

Сообщение oav »

AleXXandEr писал(а):
13.11.2006 12:47
я хочу сделать прогу на с++ - сервак и клиент в одной проге
как узнать запущена ли прога (сервак) а от этого уже узнать: запускать клиент, или запускать сервак

часто создаются pid файлы, которые и проверяешь.
еще можно создать именнованный мьютекс, расшарить память..да дофига наверно способов
Спасибо сказали:
AleXXandEr
Сообщения: 79
ОС: Debian sarge 3.1

Re: C++: как можно узнать запущена ли данная прога

Сообщение AleXXandEr »

хм...а нет ли чего попроще? например функции типа:
check_process (char* name_of_process);
возвращающую 0 если нет и 1 если есть?

или аналог pidof?

или тогда какой функцией запустить в bash'е прогу и что б она возвращала вывод(т.е. то что пишет в ответ прога)?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: C++: как можно узнать запущена ли данная прога

Сообщение serzh-z »

1. Нет.
2. my_var=`which ls`; echo dirname ${my_var}
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: C++: как можно узнать запущена ли данная прога

Сообщение d_Sun »

AleXXandEr писал(а):
13.11.2006 14:43
хм...а нет ли чего попроще?


Ну а вариант с pid файлом что сложный?
Моя подпись сильно длинная :)
Спасибо сказали:
AleXXandEr
Сообщения: 79
ОС: Debian sarge 3.1

Re: C++: как можно узнать запущена ли данная прога

Сообщение AleXXandEr »

всем пасибо
Спасибо сказали:
Аватара пользователя
}{idrag
Сообщения: 140
ОС: это полосатый мух

Re: C++: как можно узнать запущена ли данная прога

Сообщение }{idrag »

Раз ты автор обоих прог то зделай сздание файла при запуске и удаление при закрытие а потом в другой проге проверяй наличие это файла. Недостаток этого метода в том что мог быть збой и файл не был удален.

Другой вариант, это получать список запущенных процессов, а потом парсить его на наличие твоего процесса.

Еще как вариант, это чтобы твоя прога занимала какой нить порт, а другая прога будет прослушивать этот порт на занятость...
Java Developer
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: C++: как можно узнать запущена ли данная прога

Сообщение d_Sun »

}{idrag писал(а):
23.11.2006 21:01
Еще как вариант, это чтобы твоя прога занимала какой нить порт, а другая прога будет прослушивать этот порт на занятость...


Сэр знает толк в изващениях :D
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: C++: как можно узнать запущена ли данная прога

Сообщение Jan2ary »

d_Sun
Почему ж извращение? Я тоже предложить собирался, дельный вариант.
Сервер запущен - порт слушается, можно коннектиться, иначе - исключение, сервер не запущен.
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: C++: как можно узнать запущена ли данная прога

Сообщение d_Sun »

Jan2ary писал(а):
24.11.2006 11:19
d_Sun
Почему ж извращение? Я тоже предложить собирался, дельный вариант.
Сервер запущен - порт слушается, можно коннектиться, иначе - исключение, сервер не запущен.


А если этот порт слушает кто-то другой? :) И вобще, кто сказал что сервер TCP? :)
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: C++: как можно узнать запущена ли данная прога

Сообщение Jan2ary »

d_Sun
На случай "кто-то другой" - провести диалог по установлению отношений...
Ну не ТСР, так не ТСР - можно дальше выдумывать. А если ТСР - то чем не решение?
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: C++: как можно узнать запущена ли данная прога

Сообщение elide »

а через что может сервер работать? ну не через TCP, так через Unix Sockets, через pipes...
сути дела это не меняет...
слава роботам!
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: C++: как можно узнать запущена ли данная прога

Сообщение d_Sun »

elide писал(а):
24.11.2006 17:19
а через что может сервер работать? ну не через TCP, так через Unix Sockets, через pipes...
сути дела это не меняет...


Сути клиент-серверной архитектуры конечно не меняет... Но мы вроде немного о другом...
Моя подпись сильно длинная :)
Спасибо сказали: