Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

demonizacija programa

[es] :: Linux/UNIX serveri i servisi :: demonizacija programa

Strane: 1 2

[ Pregleda: 7691 | Odgovora: 26 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stanoje
php+mysql coravljenje
Batajnica

Član broj: 602
Poruke: 56
*.tehnicom.net



Profil

icon demonizacija programa25.07.2001. u 10:45 - pre 276 meseci
Interesuje me kako pod Linuxom mogu da ostavim neki program(proces)
da se izvrsava u pozadini. tj startujem ga i izlogujem se a malisa nastavi da
radi bez da bidne ubiven. Cronovi mi ne cine prolece jer proces mora da bude stalno aktivan iza. Moze primer u perlu ili C/C++ ako je to do programiranja stvar ili se moze sistemski nesto uraditi. (Kao ono iz doba dosa - exit and stay resident) i sl.
Pozdrav
Sima Kosmos iz dalekog svemira
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: demonizacija programa25.07.2001. u 10:53 - pre 276 meseci
Stratuj ga samo u pozadini sa : & i to resava problem.Pa se loguj/izloguj koliko oces on ce da sljaka dok ne zavrsi
 
Odgovor na temu

m r v a

Član broj: 8
Poruke: 1843
*.eunet.yu



Profil

icon Re: demonizacija programa25.07.2001. u 11:03 - pre 276 meseci
hm, predo, ne bih rekao da ce svi programi da nastave da rade ukoliko se konzola zatvori ....
l;(
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: demonizacija programa25.07.2001. u 11:39 - pre 276 meseci
Ako su im stdin/stdout vezani za konzolu onda ce da se zatvore ;o) Zato se uvek za demone ali uvek uradi ovako nesto na pocetku samog koda :

Code:

int i,fd = sysconf(_SC_OPEN_MAX);
for (i=0;i <= fd ; i++)
  close(i);

Pa onda uradis jedan fork() da se odovjis od parenta pa onda setsid() i voila postajes daemon ;o)
 
Odgovor na temu

m r v a

Član broj: 8
Poruke: 1843
*.eunet.yu



Profil

icon Re: demonizacija programa25.07.2001. u 13:56 - pre 276 meseci
l;)
lepo ...

to je ok kad pises sam svoj program, nego kako naterati neki vec postojeci prog da ostane u bg-u i posle zatvaranja konzole ?
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: demonizacija programa25.07.2001. u 15:50 - pre 276 meseci
pa ako stdin nije vezan za terminal(konzolu) onda slobodno on moze da pici u pozadini.
 
Odgovor na temu

stanoje
php+mysql coravljenje
Batajnica

Član broj: 602
Poruke: 56
*.tehnicom.net



Profil

icon Re: demonizacija programa27.07.2001. u 12:53 - pre 276 meseci
Citat:
predator je napisao:
Ako su im stdin/stdout vezani za konzolu onda ce da se zatvore ;o) Zato se uvek za demone ali uvek uradi ovako nesto na pocetku samog koda :

Code:

int i,fd = sysconf(_SC_OPEN_MAX);
for (i=0;i <= fd ; i++)
  close(i);

Pa onda uradis jedan fork() da se odovjis od parenta pa onda setsid() i voila postajes daemon ;o)


ok samo mi molim te objasni kako taj rad sa forkom i setsidom jer sam na to
vec natrcavao ali mi bas nije jasno.
moze i ono kako da se otcepim od konzole tj malo detaljnije ako nije problem :)

Sima Kosmos iz dalekog svemira
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: demonizacija programa27.07.2001. u 13:53 - pre 276 meseci
fork() pravi dva procesa od jednog a setsid() sluzi da se proces otcepi od terminala i postavi za vodju grupe procesa (da bude glavni baja).

fork() funkcija znaci od parenta (jednog procesa) napravi parent/children koji rade isto samo su povrante vrednosti od fork() razlicite (u parentu je to pid detea a u deteu je to 0 pa se tako zna koji je koji proces)
 
Odgovor na temu

MoHicAn

Član broj: 43
Poruke: 1893
*.yubc.net



Profil

icon Re: demonizacija programa05.08.2001. u 23:48 - pre 276 meseci
Cek
a sto ondak nebi mogao exec() da se koristi ???
posto sa forko() npravis identicni proces itd itd i onda kad se izlogujes parent umire a child je postao samostalan i ostao da radi !!!

e sto nebi tu koristio exec() on automatski ubija parenta i stvara novi samostalni proces !!!
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
194.106.163.*

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: demonizacija programa09.08.2001. u 23:50 - pre 276 meseci
Rešenje je nohup(1).
int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
 
Odgovor na temu

UroS
uros.net inc. Head manager
yu/sr/bgd

Član broj: 3
Poruke: 1953
*.verat.net

ICQ: 44960289
Sajt: www.uros.net


+1 Profil

icon Re: demonizacija programa09.08.2001. u 23:59 - pre 276 meseci
najjednostanije je skinuti screen sa www.linux.org

em sto ti ostane u pozadini mozes lepo da se vratis na to i sl.

nego da se cimas sa nekim glupostima...
one-thousand, three-hundred and thirty-seven.
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
194.106.163.*

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: demonizacija programa10.08.2001. u 00:00 - pre 276 meseci
Mohican: exec() ne stvara novi samostalni proces, ve� zamenjuje kontekst pozivaju�eg procesa novim programom sa diska.

Ajd jo� malo da pojasnim ovo sa nohup(1)... Kad startujete bilo koji proces iz shella, njemu je shell roditelj i na neki na�in je vezan za njega, u smislu da �e prilikom ubijanja shella, sva njegova deca dobiti signal 1 (HUP)... To dolazi tradicionalno od toga �to se na stare unix sisteme �esto ka�ilo preko serijskog terminala (modem, etc.), pa kad proces izgubi vezu sa kontroli�u�im tty, to naj�e��e zna�i da se fizi�ki prekinula veza (hangup). Daklem, ako ho�e� da ti komanda ostane aktivna i pri izlasku iz �ela, kuca�

Code:

$ nohup komanda
nohup: appending output to `nohup.out'


Output ne ide na tty, ve� po defaultu u fajl nohup.out. Mo�e se i koristiti redirekcija u proizvoljni fajl. nohup �e novostartovani proces u�initi detetom inita, tako da �e biti imun na sve �to se de�ava sa shellom iz koga je startovan...
int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
194.106.163.*

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: demonizacija programa10.08.2001. u 00:06 - pre 276 meseci
Citat:
UroS je napisao:
najjednostanije je skinuti screen sa www.linux.org

em sto ti ostane u pozadini mozes lepo da se vratis na to i sl.

nego da se cimas sa nekim glupostima...


Nisi u pravu. Screen svakako ima svoje primene, ali niti je jednostavniji za korišćenje, niti je standard, niti je zgodan za korišćenje u xtermu, gde se nohup u principu i najčešće kuca...

Pored toga, homepage screena je, ako se dobro sećam, http://www.gnu.org/software/screen/.

int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
194.106.163.*

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: demonizacija programa10.08.2001. u 00:07 - pre 276 meseci
Pored toga, ovakva primena se ne slaže sa Unix filozofijom, koja kaže da ne treba ubijati komarce topom.
int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
 
Odgovor na temu

MoHicAn

Član broj: 43
Poruke: 1893
*.yubc.net



Profil

icon Re: demonizacija programa19.08.2001. u 17:42 - pre 275 meseci
Pa ne nisam se lepo izrazio

mislio sam ovako

znaci ja koristim /bin/bash
iz njega opalim exec program_koji_ocu _da_mi_radi_iz_pozadine
i exec ce da zameni bash tj da ga ubije i zameni tim programom
i on ce ostati da sljaka !!!
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: demonizacija programa19.08.2001. u 17:48 - pre 275 meseci
Citat:
MoHicAn je napisao:
Cek
a sto ondak nebi mogao exec() da se koristi ???
posto sa forko() npravis identicni proces itd itd i onda kad se izlogujes parent umire a child je postao samostalan i ostao da radi !!!

e sto nebi tu koristio exec() on automatski ubija parenta i stvara novi samostalni proces !!!



Pa exec sluzi da se startuje neki program ali u ovom slucaju ja ne zelim da startujem program vec ocu da moj program radi u pozadini!!!!!
Naim i shell poziva vfork() ili fork() da bi izvrsio neki program...Sad zavisi da li si ti stavio & na kraju shell ce pozvati samo fork() ali ako nema & onda poziva fork() za kojim sledi wait() tj. ceka da dete zavrsi svoj rad.
E sad ja mislim da kad uradis & shell ceka na pojavu SIGCHLD signala ali to nisam siguran
 
Odgovor na temu

MoHicAn

Član broj: 43
Poruke: 1893
*.yubc.net



Profil

icon Re: demonizacija programa19.08.2001. u 19:58 - pre 275 meseci
Citat:
predator je napisao:
Citat:
MoHicAn je napisao:
Cek
a sto ondak nebi mogao exec() da se koristi ???
posto sa forko() npravis identicni proces itd itd i onda kad se izlogujes parent umire a child je postao samostalan i ostao da radi !!!

e sto nebi tu koristio exec() on automatski ubija parenta i stvara novi samostalni proces !!!



Pa exec sluzi da se startuje neki program ali u ovom slucaju ja ne zelim da startujem program vec ocu da moj program radi u pozadini!!!!!
Naim i shell poziva vfork() ili fork() da bi izvrsio neki program...Sad zavisi da li si ti stavio & na kraju shell ce pozvati samo fork() ali ako nema & onda poziva fork() za kojim sledi wait() tj. ceka da dete zavrsi svoj rad.
E sad ja mislim da kad uradis & shell ceka na pojavu SIGCHLD signala ali to nisam siguran


Pa chek
rekao si da ako zelis da posaljes proces u pozadinu
pri STARTOVANJU procesa das mu iza & i on ide u pozadinu a onda si dobio pitanje sta ako proces ne moze da se detach-uje od terminala ...

Sa exec ime_programa bi startovao taj progy u pozadini i automatski bi se izlogovao onda se posle opet ulogujes i bole te uvo !!!

napomena ovo nisam probavao tako da ne tvrdim samo pretpostavljam ..
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: demonizacija programa19.08.2001. u 23:39 - pre 275 meseci
Koliko ja znam procesi koji treba da su vezani za terminal,ako se posalju u pozadinu automatski zavrsavaju svoj rad (bc recimo) ali ovi kojima ne treba terminal mogu slobodno da se posalju u pozdainu (input procesi,znaci oni koji primaju input sa terminala ne mogu da idu u pozadinu dok drugi mogu)
 
Odgovor na temu

MoHicAn

Član broj: 43
Poruke: 1893
*.yubc.net



Profil

icon Re: demonizacija programa20.08.2001. u 00:40 - pre 275 meseci
Pa dobro al sa exec ime_programa
odvajas bilo koji program od terminala i posle mos se logoutujes, logujes opet kolko oces itd itd
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: demonizacija programa20.08.2001. u 01:11 - pre 275 meseci
Ne program ciji input zavisi od terminala ne moze u pozadinu ;o)
probaj bc da bacis u pozadinu i zavrsice se odmah...
 
Odgovor na temu

[es] :: Linux/UNIX serveri i servisi :: demonizacija programa

Strane: 1 2

[ Pregleda: 7691 | Odgovora: 26 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.