case "$1" in
start)
# Start daemons.
echo -n $"Starting AutoHome daemon: "
echo
daemon test
echo
;;
stop)
# Stop daemons.
echo -n $"Shutting down AutoHome: "
killproc test
echo
# Do clean-up works here like removing pid files from /var/run, etc.
;;
status)
status test
;;
restart)
$0 stop
$0 start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
kada napišem:
service AutoHome start
stvar se pokrene i taj prozor stoji i ne mrda
program ima jednu petlju koja svakih 5 sekundi upiše nešto u log fajl
tailam fajl i stvarno se upisuje, ali ovaj gore terminal stoji
i kada ga prekinem sa ctrl+c, ugasi se i program
> Feudalac! wrote:
>> Da li netko zna ne�to o kreiranju servisa?
>> Imam program koji normalno radi, ali kada ga poku�am pokrenuti kao
>> servis, stvar se ne pali3
> Zapravo - pitanje je sljede�e:
>
> kada napi�em:
> service AutoHome start
> stvar se pokrene i taj prozor stoji i ne mrda
>
> program ima jednu petlju koja svakih 5 sekundi upi�e ne�to u log fajl
> tailam fajl i stvarno se upisuje, ali ovaj gore terminal stoji
> i kada ga prekinem sa ctrl+c, ugasi se i program
Zna�i, 100% si siguran da service(8) pokrene program? Jel mogu�e da
ono �to zapisuje u log fajl otprije pokrenut program?
Pod pretpostavkom da service(8) stvarno pokrene tvoj program ne
pada mi niti jedan (o�it) razlog zbog kojeg ga ne pokre�e kao daemon
proces.
Da imam takav problem prvo bih preimenovao program (test je
nenadjebivo lo�e ime za neki exe fajl na unixu). Nakon toga bih
zamijenio svako kori�tenje samo imena programa sa punom putanjom do
programa. Onda bih "#!/bin/sh" na po�etku AutoHome skripte dodao "
-x" da vidim gdje zapne. Na kraju bih skriptu pokrenuo sa
/etc/init.d/AutoHome start
a onda bih...
PS: Nadam se da je kod koji si postao u prvom postu samo dio skripte.
--
VI = Virtually Incomprehensible.
>
> PS: Nadam se da je kod koji si postao u prvom postu samo dio skripte.
>
>
Ono je dio skripte.
Rje�io sam roblem. Nije bila skripta problemati�na nego moj program.
Kada se pi�e daemon, na po�etku programa se stvar mora forkati u jo�
jedan proces (koji se zapravo pokrene kao daemon) pa stvar funkcionira
Evo rje�enje ako ikome ikada zatreba (ovo includano nije sve potrebno za
ovaj komad koda)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
main()
{
pid_t pid, sid;
pid = fork();
if (pid < 0) { exit(EXIT_FAILURE); }
if (pid > 0) { exit(EXIT_SUCCESS); }
umask(0);
/*open log files*/
sid = setsid();
if (sid < 0) { exit(EXIT_FAILURE); }
if ((chdir("/")) < 0) { exit(EXIT_FAILURE); }
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
/* ovdje ide petlja koja zapravo radi ono �to servis mora raditi*/
exit(EXIT_SUCCESS);
}
> zatvara SVE fd-ove a ne samo prva 3.
ni to nisam znao - prvi puta pi�em ne�to ovakvo
> A jos zesce je includeanje sveg i svaceg sto nema veze sa funkcijama koje koristis.
Kako zna� koje funkcije koristim? Tu je samo kod koji rje�ava problem
koji sam do sada imao...
Google search Unix, double, fork, example.
> Kako zna� koje funkcije koristim? Tu je samo kod koji rje�ava problem
> koji sam do sada imao...
Ako saljes primjer za daemoniziranje, onda posaljes samo includeove za taj
chunk koda koji koristis, zar ne? Cemu slati sve moguce headere koje tvoj
program koristi kad ga ostatak grupe nece nikad (hopefully) vidjeti?
--
NAME:Dinko.kreator.Korunic DISCLAIMER:Standard.disclaimer.applies
ICQ:16965294 JAB:kreat...@jabber.org PGP:0xEA160D0B
HOME:http://dkorunic.net QUOTE:Eat.right.stay.fit.and.die.anyway
Zasto napadati covjeka koji pokusava pomoci netkome koga mozda zanima
ista stvar.
Covjek je naveo u postu da taj kod ne koristi sve inklude ali rjesava
problem.
Bolje nego vecina koja kaze problem rijesen ali ne i kako ga je rijesio...
Kad si ve� stru�njak i o�ito voli� linux, trebalo bi ti biti drago da ga
netko poku�ava nau�iti i bilo bi ljepo sljediti zajednicu i pomo� onima
koji ne�to ne znaju.
Portam stvar sa windowsa i samo po sebi nije lako, a kamo li odgovori
koji to nisu.
U budu�e molim ispravi me pristojno sa 'ne treba includeati to i to a
zaboravio si to i to' umjesto da me pljuvaďż˝.
Najlak�e je prosljediti na google - najbolje da news server automatski
odgovara sa linkom na google search
Pozdrav
Hvala na razumjevanju 8-)
Nije ad-hominem napad vec konkretan komentar za koji su argumenti prilicno
evidentni samo po sebi, ali ajde kad me vuces za jezik:
Taj navedeni problem (aka Unix daemoniziranje) se 20 godina rjesava
na jedan te isti standardni (prakticki propisani nacin) i tu nema bas
prostora za izmisljanje neke tople vode. Obicno googlanje za relevantnim
kljucnim rijecima daje barem 10 tisuca upotrebljivih recepata, pa cemu
onda u tom cijelom moru jos jedan? Zar zaista mislis da ce to ikome
pomoci? IMO, samo ce odmoci -- bit ce kao na Ubuntu forumima gdje u moru
gluposti i krivih savjeta eventalno naletis povremeno na nesto
upotrebljivo :)
Covjek ne pomaze nuzno ikome, vec navodi neko svoje polurjesenje koje
naposljetku nije u potpunosti korektno. Samo povecava entropiju, odnosno
smanjuje (ionako los) signal-to-noise ratio. Da, jasno mi je da je
pocetnik, ali to ne znaci da ga treba potapsati i pohvaliti kad napravi
polurjesenje za koje bi nasao sve sto treba u 5 minuta Googlanja.
Pa kompjuteri postoje vec 50 godina zar itko ista treba pitati o njima.
linux postoji vec najmanje 30g pa samim time i ovu grupa netreba
postojati posto svi o njemu sve moraju znati do sada.
Cudi me jedino sto nije ispravljao moje pravopisne greske obicno se svi
prvo toga uhvate.
Ali da neduzimo neka bude kako on kaze.
Ali i zasto onda nisi ispravio onaj kod gore i postao ga nazad kad si
tako dobar.
I polu rjesenja su rjesenja koja su prilagodjenja odredjenoj svrsi i
amim time ih treba uvijek pozdraviti.
Postavljanjem sve nizih granica dobivas samo samo sve losija "rjesenja"
odnosno uspjeh.
> On Mon, 18 Oct 2010 23:11:03, Trill <aa@a.a> wrote:
>> Zasto napadati covjeka koji pokusava pomoci netkome koga mozda zanima
>> ista stvar.
>> Covjek je naveo u postu da taj kod ne koristi sve inklude ali rjesava
>> problem.
>> Bolje nego vecina koja kaze problem rijesen ali ne i kako ga je
>> rijesio...
>
> Nije ad-hominem napad vec konkretan komentar za koji su argumenti
> prilicno evidentni samo po sebi, ali ajde kad me vuces za jezik:
�isti troll napad je bio .. a i ovo 'za jezik' privla�i ..
> Taj navedeni problem (aka Unix daemoniziranje) se 20 godina rjesava na
> jedan te isti standardni (prakticki propisani nacin) i tu nema bas
> prostora za izmisljanje neke tople vode. Obicno googlanje za relevantnim
> kljucnim rijecima daje barem 10 tisuca upotrebljivih recepata, pa cemu
> onda u tom cijelom moru jos jedan? Zar zaista mislis da ce to ikome
> pomoci? IMO, samo ce odmoci -- bit ce kao na Ubuntu forumima gdje u moru
> gluposti i krivih savjeta eventalno naletis povremeno na nesto
> upotrebljivo :)
>
> Covjek ne pomaze nuzno ikome, vec navodi neko svoje polurjesenje koje
> naposljetku nije u potpunosti korektno. Samo povecava entropiju, odnosno
> smanjuje (ionako los) signal-to-noise ratio. Da, jasno mi je da je
> pocetnik, ali to ne znaci da ga treba potapsati i pohvaliti kad napravi
> polurjesenje za koje bi nasao sve sto treba u 5 minuta Googlanja.
Gle, stru�njak tvojih kvaliteta ima samo dvije opcije
- STFU
- napi�i i podastri ispravno rje�enje (PA MAKAR BILO i na gugletu)
slanje na guglo je uglavnom kontraproduktivno, *pogotovu* kod ljudi koji
su pokazali interes.
Da, pru�i mu ruku i povedi ga kad je ve� voljan.
ps
iritiraju me ljudi koji jedva �ekaju da jtfgi nekoga, zar nebi bi
izvrsno da se razvije rasprava i kod nas na ovoj izumiru�oj grupi
--
Mario Mikocevic (Mozgy)
mario dot mikocevic at sk dot t dash com dot hr
It's never too late to have a good childhood!
The older you are, the better the toys!
My favourite FUBAR ...
Kad smo kod argumentiranja, ovaj dio posta je u konfliktu sa samim sobom.
--
Zlatko
> Sori ali ne znam cemu pejstanje prilicno nepotpunog koda? Za Unix
> daemoniziranje se tipicno koristi double-fork, pa se onda jos pri tome
> zatvara SVE fd-ove a ne samo prva 3.
Koje to tocno file descriptore osim stdin, stdout i stderr treba
pozatvarati prilikom demoniziranja i zasto?
--
turbo/APC
Mene npr. užasno smeta što mysqld drži otvorenim gomilu FD-a u
/var/lib/mysql. To sve treba pozatvarati odmah nakon što podemoni da
radi brže!
--
http://vedranf.net | a8e7a7783ca0d460fee090cc584adc12
Tipicno se zatvaraju svi do max_int (nekad je to bilo ograniceno na 64).
Zato da ih child ne bi naslijedio od parenta. Zato sto to mogu biti fd-ovi
od npr. shella ili nekog interpretera, koje bi onda naslijedila sva
eventualna djeca novostvorenog daemona i koji bi eventualno mogli
uzrokovati security issue (npr. izvrsavanje daemona pod nekim unprivileged
userom sa otvorenom fd-om nad necim sto inace korisnik ne bi mogao
pisati), ako vec ne bezvezno trosenje fd-ova.