[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

odpalenie programu z oczekiwaniem na zakonczenie

hazet

7/22/2007 5:36:00 PM

Witam,

Czy mólby ktos mi podopowiedziec jak uruchomic inny program, tak aby
mój program czekal na jego pelne uruchomienie ewentulanie
zakonczenie.

Dodam ze chodzi mi tu o uruchomienie serwera PostgreSQL tak aby
program czekal az serwer wystratuje calkowicie a nie uruchamial sie za
wczesnie.

Mi na razie do glowy wpadlo tylko utworznie potoku i uruchomienie
procesu funkcja CreateProcess i przechwycenie standardowego wyjscia,
nastepnie przeparsowanie komunikatów postgresql i sprawdzenie czy sie
uruchomil.

Moze ma ktos jakis inny sposób.

Z góry dzieki, pozdrawiam

8 Answers

Grzegorz Niemirowski

7/22/2007 6:26:00 PM

0

hazet <hazet@os.pl> napisa3(a):
> Witam,
> Czy mó3by kto? mi podopowiedziea jak uruchomia inny program, tak aby
> mój program czeka3 na jego pe3ne uruchomienie ewentulanie
> zakonczenie.
> Dodam ?e chodzi mi tu o uruchomienie serwera PostgreSQL tak aby
> program czeka3 a? serwer wystratuje ca3kowicie a nie uruchamia3 sie za
> wcze?nie.
> Mi na razie do g3owy wpad3o tylko utworznie potoku i uruchomienie
> procesu funkcj? CreateProcess i przechwycenie standardowego wyj?cia,
> nastepnie przeparsowanie komunikatów postgresql i sprawdzenie czy sie
> uruchomi3.
> Mo?e ma kto? jaki? inny sposób.
> Z góry dzieki, pozdrawiam

Chyba trudno bedzie wymy?lia co? lepszego w tym przypadku. Wszystko zale?y
od tego co program robi i jakie s? tego oznaki. Mo?na ?ledzia logi albo
w3a?nie to, co wyrzuca na konsole. Jest te? du?o innych rzeczy daj?cych
jakie? wskazówki: otwieranie portów, nawi?zywanie po3?czen, otwieranie
plików, wy?wietlanie okien.

--
Grzegorz Niemirowski
http://www.grz...
OE PowerTool i aktualno?ci ze ?wiata Outlook Express: grzegorz.net/oe
Uptime: 17 days, 21 hours, 12 minutes and 22 seconds

Maciej Sobczak

7/22/2007 8:06:00 PM

0

On 22 Lip, 19:36, hazet <ha...@os.pl> wrote:

> Dodam ze chodzi mi tu o uruchomienie serwera PostgreSQL tak aby
> program czekal az serwer wystratuje calkowicie a nie uruchamial sie za
> wczesnie.

Ten serwer ma opcje, która wstrzymuje proces startowy do czasu pelnego
wystartowania serwera.

Jesli nie opcja startera, to ten sam serwer ma tez osobny program,
który testuje jego stan - stad prosty schemat:
1. uruchamiasz serwer (tzn. zlecasz jego uruchomienie, któro odbywa
sie w tle)
2. sprawdzasz w petli co jakis sensowny czas (np. 1s) stan serwera i
wychodzisz z petli gdy stan jest "uruchomiony".

> Mi na razie do glowy wpadlo tylko utworznie potoku i uruchomienie
> procesu funkcja CreateProcess i przechwycenie standardowego wyjscia,
> nastepnie przeparsowanie komunikatów postgresql i sprawdzenie czy sie
> uruchomil.

Fuj.

--
Maciej Sobczak
http://www.mso...

hazet

7/23/2007 8:14:00 AM

0

On 22 Lip, 22:05, Maciej Sobczak <see.my.homep...@gmail.com> wrote:
> On 22 Lip, 19:36, hazet <ha...@os.pl> wrote:
>
> > Dodam ze chodzi mi tu o uruchomienie serwera PostgreSQL tak aby
> > program czekal az serwer wystratuje calkowicie a nie uruchamial sie za
> > wczesnie.
>
> Ten serwer ma opcje, która wstrzymuje proces startowy do czasu pelnego
> wystartowania serwera.

Mam rozumiec ze jest to opcja -w??
Ja odpalam proces funkcja ShellExecute:
ShellExecute(NULL,
"open",
"pgsql\\bin\\pg_ctl.exe",
"start -s -w -D pgsql\\data",
NULL,
SW_SHOWMINIMIZED);

Mimo to dalej nie wiem jak mialbym to zastosowac?? Odpalic proces w
tle? Czy funkcja bedzie zwracala rozna wartosc gdy serwer bedzie w
czasie uruchamiania i jak bedzie uruchomiony?

>
> Jesli nie opcja startera, to ten sam serwer ma tez osobny program,
> który testuje jego stan - stad prosty schemat:
> 1. uruchamiasz serwer (tzn. zlecasz jego uruchomienie, któro odbywa
> sie w tle)
> 2. sprawdzasz w petli co jakis sensowny czas (np. 1s) stan serwera i
> wychodzisz z petli gdy stan jest "uruchomiony".

W postgresql chyba nie ma takiego programu testujacego.

>
> > Mi na razie do glowy wpadlo tylko utworznie potoku i uruchomienie
> > procesu funkcja CreateProcess i przechwycenie standardowego wyjscia,
> > nastepnie przeparsowanie komunikatów postgresql i sprawdzenie czy sie
> > uruchomil.
>
> Fuj.
>
> --
> Maciej Sobczakhttp://www.mso...

pozdrawiam


Wiktor S.

7/23/2007 8:47:00 AM

0

> Czy mó3by kto? mi podopowiedziea jak uruchomia inny program, tak aby
> mój program czeka3 na jego pe3ne uruchomienie ewentulanie
> zakonczenie.

w jakim systemie, gdzie?

w Win32 jest WaitForSingleObject()

--
Azarien

Jakub Debski

7/23/2007 9:23:00 AM

0

Wiktor S. laid this down on his screen :
>> Czy mó3by kto? mi podopowiedziea jak uruchomia inny program, tak aby
>> mój program czeka3 na jego pe3ne uruchomienie ewentulanie
>> zakonczenie.
>
> w jakim systemie, gdzie?
> w Win32 jest WaitForSingleObject()

OP musia3by najpierw zdefiniowaa co to jest "pe3ne uruchomienie" :)
Najlepsze by3oby rozwi?zanie Macieja.

pozdrawiam
Jakub


hazet

7/23/2007 1:18:00 PM

0

On 23 Lip, 11:22, Jakub Debski <debski.ja...@wp.pl> wrote:
> Wiktor S. laid this down on his screen :
>
> >> Czy mólby ktos mi podopowiedziec jak uruchomic inny program, tak aby
> >> mój program czekal na jego pelne uruchomienie ewentulanie
> >> zakonczenie.
>
> > w jakim systemie, gdzie?
> > w Win32 jest WaitForSingleObject()
>
> OP musialby najpierw zdefiniowac co to jest "pelne uruchomienie" :)
> Najlepsze byloby rozwiazanie Macieja.
>
> pozdrawiam
> Jakub

Aplkiacja pracuje pod win32 napisana w Turbo C++ Explorer.
Uruchamiajac serwer postgresql potrzebuje on chwile czasu na pelne
wystartowanie. Nie wiem czy zwraca jakis kod w przypadku uruchomienia.
Problem polega na tym ze moja aplikacje próbuje laczyc sie z baza w
momencie jak serwer sie jeszcze nie uruchomil. Czasu opóznienia nie
moge wpisac na sztywno raz ze nie elegancko dwa ze na roznych
komputerach ten czas moze byc rozny.

Jezeli bym uzyl funcji WaitForSingleObject() to najpierw musze chyba
odpalic proces funkcja CreateProcess, ale nie wiem czy ta funkcja w
tym przypadku pomoze.

pozdrawiam


Jakub Debski

7/23/2007 1:39:00 PM

0

hazet wrote :
> Aplkiacja pracuje pod win32 napisana w Turbo C++ Explorer.
> Uruchamiaj?c serwer postgresql potrzebuje on chwile czasu na pe3ne
> wystartowanie. Nie wiem czy zwraca jaki? kod w przypadku uruchomienia.
> Problem polega na tym ?e moja aplikacje próbuje 3?czya sie z baz? w
> momencie jak serwer sie jeszcze nie uruchomi3. Czasu opó?nienia nie
> moge wpisaa na sztywno raz ?e nie elegancko dwa ze na roznych
> komputerach ten czas moze byc rozny.

a broni co? próbowaa 3?czya sie do skutku, ewentualnie z time-out'em?

pozdrawiam
Jakub


Grzegorz Niemirowski

7/23/2007 2:24:00 PM

0

hazet <hazet@os.pl> napisa3(a):
> Jezeli bym uzyl funcji WaitForSingleObject() to najpierw musze chyba
> odpalic proces funkcja CreateProcess, ale nie wiem czy ta funkcja w

Tu raczej chodzi3o o czekanie a? sie proces zakonczy.

--
Grzegorz Niemirowski
http://www.grz...
OE PowerTool i aktualno?ci ze ?wiata Outlook Express: grzegorz.net/oe
Uptime: 18 days, 17 hours, 12 minutes and 50 seconds