Hogy indítsak el egy programot úgy, hogy közben egy fájlba elmentődjön a pid-je? Arra kéne, hogy amikor már nincs szükség rá, ki tudjam lőni úgy, hogy nem bántom az adott program egy esetleg futó másik példányát?
- 1031 megtekintés
Hozzászólások
Indíthatnád a háttérben, és közvetlenül utána a $! változó értékét, mely az utoljára háttérben indított folyamat PID-jét tartalmazza, le tudod menteni vagy ki tudod íratni.
Pl.:
valami &
echo $! > valami_pid.log
Üdv,
Nagyimami
- A hozzászóláshoz be kell jelentkezni
Kösz, működik.
- A hozzászóláshoz be kell jelentkezni
Pontosabban, nem az igazi. Hogy lehetne úgy, hogy a processz előtérben maradjon? (fg-vel próbálkoztam, de scriptben nincs job control.)
- A hozzászóláshoz be kell jelentkezni
Ez eleve hibásnak tűnik.
Mi van, ha megdöglik a program rögtön indítás után?
És mi van, ha már fut a program egy példánya azonos könyvtárból?
Mindenképpen valami scriptet kell gyártanod az indításhoz. Szerintem.
Most inkább nem másznék bele részletekbe, mert ilyenkor szoktam nagy marhaságokat írni...
Valami ilyesmit követnék el:
[ -a x.pid ] && exit
echo $$ >x.pid
programinditas
rm x.pid
Sajnos ha elszáll a belül indított kód (pl. mert kilövöd), a pid file megmarad.
--
Fel! Támadunk!
- A hozzászóláshoz be kell jelentkezni
Kösz. (A $$ hiányzott. Hol van doksi a speciális változókról: $$ $! ...? man bash nem írja.) Az nem baj, ha már fut a program, az a lényeg, hogy akkor is elindítsa még egyszer, és tudja, hogy melyik az, amelyiket az adott esetben indítottam el.
- A hozzászóláshoz be kell jelentkezni
"...man bash nem írja."
De írja, csak még barátkoznod kell a használatával.
Nézd meg a "Special Parameters" szakaszát.
---
If you have money, use Windows!
However, if you also have a brain, use Linux!
- A hozzászóláshoz be kell jelentkezni
Bocs a hülye hozzászólásért, $$-e meg $!-re kerestem.
- A hozzászóláshoz be kell jelentkezni
No, most nem ertem... Ha eloterben fut, akkor odamesz, es ^C, vagy ^\;
Mit kevernel ossze?
Zsiraf
- A hozzászóláshoz be kell jelentkezni
Automatikusan kell (X indításakor, ill. kilőni a leállításakor). Egyébként most már azt hiszem, megkaptam a választ.
- A hozzászóláshoz be kell jelentkezni