lug-bg: Solaris
- Subject: lug-bg: Solaris
- From: mitko@xxxxxxx (Dimitar Peikov)
- Date: Fri, 8 Nov 2002 19:20:36 +0200
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Zdravej Rosene,
Ta naposledak imam chestta da portvam edno neshto koeto sam pisal za
Linux/FreeBSD za Solaris (Intel/Sparc). Tova za koeto mislja da ti se
oplacha, poxvalja i t.n. e svarzano s Solaris (za sega sam go testval samo na
Intel, no tazi vecher shte go izsledvam i na Sparc) i moze da ne mu
obrushtash mnogo vnimanie. Smetnax che moze da ti stane neshto interesno, ili
da me posavetvash kak da ... si resha problema :-). Ta vaprosniat software e
za C++ i polzva libxml, stl, socket-i i fork() /za da ne navlizam v
threading-a/.
Tova chudo na misalta predstavljava edin dispecher na 2 procesa koito nalivat
voda v edin spool (failov) i edin worker kojto vadi neshtata ot spool-a i gi
obrabotva. Ta dispecher-a, go prispivam s pause(), i kato mu podam HUP signal
idejata mi e da se prekonfigurira i da si zapusne procesite nanovo, a kato mu
pratja TERM da utrepe vsichki procesi za koito se grizi. Taka, tova e
sravnitelno ... nikakva zadachka, no kato se ima predvid che kato mu pratja
za 2-ri pat HUP, sled kato se prezaredi ... segmentation fault v libc-to
;-((( Tova si go fix-nax, sprjax da polzvam pause() i vmesto tova go sleepvam
s nanosleep() za njakolko sec i posle da proverjava dali njakoj ot
naslednicite mu ne sa umreli. Da se seshtash za BUGZILLA-ta na Solaris?
;-)) Mislja che ako napisha oshte njakoj red i shte trjabva da zaobikaljam
kernel-a ;-))
Drugiat ... lek moment e v worker-a. Toj zapuska njakav script (configuriran
nejde v XML) i mu podava parametri (fork() + execve()), kato parent-a chaka X
secundi i ako scripta ne e svarshil -> KILL -TERM, a po kusno i KILL -KILL. I
tova dobre, no za da izchakam timeout-a sam pusnal edin alarm() i sled tova
waitpid() ili familia (wait(), wait3(), wait4(), waitpid()). E da no ne.
wait()-a vinagi izliza s -1!!!. Ako poglednesh v man-a shte vidish che ima
opisani edin specialen flag SA_HASNOCHILD ili neshto takova i SIGCHLD da ne e
SIG_IGN. E SIGCHLD predi fork()-a sam go varnal na SIG_DFL, taka che problema
ne e v nego. Ta kato maxna alarm()-ata vsichko si trugva ... po med i maslo.
E ako na tova mu vikam kasmet ... ;-)
Sashtia tozi kod pod Linux i FreeBSD 4/5 xvarchi.... mozesh da go machkash no
raboti. Uzas. Poslednite njakolko dni sam kato v kapan i ne znaja ot kade
kakvo shte mi izkochi.
- --
Dimitar Peikov
Programmer Analyst
Globalization Group
"We Build e-Business"
RILA Solutions
27 Building, Acad.G.Bonchev Str.
1113 Sofia, Bulgaria
phone: (+359 2) 9797320
phone: (+359 2) 9797300
fax: (+359 2) 9733355
http://www.rila.com
GnuPG key http://earth.rila.bg/~mitko/mitko.key.asc
GnuPG key http://www.bgzone.com/~mitko/mitko.key.asc
Key fingerprint 97AF 6192 78E2 AC68 FD56 CCB0 68B9 DF7D B3C1 9ED7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE9y/JkaLnffbPBntcRAuTwAKCOwnqp/cQGXvIkDTXdM/9R+hAhVQCfWrNc
5C1+gzG76A3u9qi86QPWReQ=
=2aoq
-----END PGP SIGNATURE-----
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================
|