я хочу сделать прогу на с++ - сервак и клиент в одной проге
как узнать запущена ли прога (сервак) а от этого уже узнать: запускать клиент, или запускать сервак
C++: как можно узнать запущена ли данная прога
Модератор: Модераторы разделов
-
AleXXandEr
- Сообщения: 79
- ОС: Debian sarge 3.1
-
oav
- Бывший модератор
- Сообщения: 296
Re: C++: как можно узнать запущена ли данная прога
AleXXandEr писал(а): ↑13.11.2006 12:47я хочу сделать прогу на с++ - сервак и клиент в одной проге
как узнать запущена ли прога (сервак) а от этого уже узнать: запускать клиент, или запускать сервак
часто создаются pid файлы, которые и проверяешь.
еще можно создать именнованный мьютекс, расшарить память..да дофига наверно способов
-
AleXXandEr
- Сообщения: 79
- ОС: Debian sarge 3.1
Re: C++: как можно узнать запущена ли данная прога
хм...а нет ли чего попроще? например функции типа:
check_process (char* name_of_process);
возвращающую 0 если нет и 1 если есть?
или аналог pidof?
или тогда какой функцией запустить в bash'е прогу и что б она возвращала вывод(т.е. то что пишет в ответ прога)?
check_process (char* name_of_process);
возвращающую 0 если нет и 1 если есть?
или аналог pidof?
или тогда какой функцией запустить в bash'е прогу и что б она возвращала вывод(т.е. то что пишет в ответ прога)?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: C++: как можно узнать запущена ли данная прога
1. Нет.
2. my_var=`which ls`; echo dirname ${my_var}
2. my_var=`which ls`; echo dirname ${my_var}
-
d_Sun
- Сообщения: 291
Re: C++: как можно узнать запущена ли данная прога
Ну а вариант с pid файлом что сложный?
Моя подпись сильно длинная :)
-
AleXXandEr
- Сообщения: 79
- ОС: Debian sarge 3.1
-
}{idrag
- Сообщения: 140
- ОС: это полосатый мух
Re: C++: как можно узнать запущена ли данная прога
Раз ты автор обоих прог то зделай сздание файла при запуске и удаление при закрытие а потом в другой проге проверяй наличие это файла. Недостаток этого метода в том что мог быть збой и файл не был удален.
Другой вариант, это получать список запущенных процессов, а потом парсить его на наличие твоего процесса.
Еще как вариант, это чтобы твоя прога занимала какой нить порт, а другая прога будет прослушивать этот порт на занятость...
Другой вариант, это получать список запущенных процессов, а потом парсить его на наличие твоего процесса.
Еще как вариант, это чтобы твоя прога занимала какой нить порт, а другая прога будет прослушивать этот порт на занятость...
Java Developer
-
d_Sun
- Сообщения: 291
Re: C++: как можно узнать запущена ли данная прога
Сэр знает толк в изващениях
Моя подпись сильно длинная :)
-
Jan2ary
- Бывший модератор
- Сообщения: 630
- Статус: Тщедушный очкарик
Re: C++: как можно узнать запущена ли данная прога
d_Sun
Почему ж извращение? Я тоже предложить собирался, дельный вариант.
Сервер запущен - порт слушается, можно коннектиться, иначе - исключение, сервер не запущен.
Почему ж извращение? Я тоже предложить собирался, дельный вариант.
Сервер запущен - порт слушается, можно коннектиться, иначе - исключение, сервер не запущен.
Не шалю, никого не трогаю, починяю примус...
-
d_Sun
- Сообщения: 291
Re: C++: как можно узнать запущена ли данная прога
А если этот порт слушает кто-то другой?
Моя подпись сильно длинная :)
-
Jan2ary
- Бывший модератор
- Сообщения: 630
- Статус: Тщедушный очкарик
Re: C++: как можно узнать запущена ли данная прога
d_Sun
На случай "кто-то другой" - провести диалог по установлению отношений...
Ну не ТСР, так не ТСР - можно дальше выдумывать. А если ТСР - то чем не решение?
На случай "кто-то другой" - провести диалог по установлению отношений...
Ну не ТСР, так не ТСР - можно дальше выдумывать. А если ТСР - то чем не решение?
Не шалю, никого не трогаю, починяю примус...
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: C++: как можно узнать запущена ли данная прога
а через что может сервер работать? ну не через TCP, так через Unix Sockets, через pipes...
сути дела это не меняет...
сути дела это не меняет...
слава роботам!
-
d_Sun
- Сообщения: 291
Re: C++: как можно узнать запущена ли данная прога
Сути клиент-серверной архитектуры конечно не меняет... Но мы вроде немного о другом...
Моя подпись сильно длинная :)