Nowe posty

Autor Wątek: problem ze screen'em  (Przeczytany 3427 razy)

Logrox

  • Gość
problem ze screen'em
« dnia: 2006-01-25, 12:40:58 »
Witam.

Mój problem polega natym iż jeśli uruchomie program \\"tc\\" z poziomu apache, to program sie uruchamia, jak też go zamknę ot też sie zamyka. :] niby wszystko ok.
Ale sprawa wygląda inaczej jak ten program pochodzi sobie troche czasu. Wtedy zamyka się sam :( .

Załwarzyłem iż ten proces jest uruchomiony pare razy mimo że w skrypcie php jest wsadzona funkcja
 shell_exec(\\'killall tc\\');
jest ona urzyta przed każdą funkcja
 shell_exec(\\'/home/logrox/tc &\\');

Ręcznie chciałem go zamknać dając \\"killall tc\\"
polecenie było wykonane poprawnie ale i tak program był uruchomiony, (jestem jak root).
dopier wykonanie
kill -s 9 \\"jego PID\\"
kończyło jego działanie.

Moje pytanie:
Jak mam zrobić by program \\"tc\\" był uruchomiony tylko raz w systemia a nie pare razy?.
Jak zrobić by dając killall wszystko sie zamykało o tej nazwie \\"tc\\"

PS.
Sory za ortografie, gramatyke


chmooreck

  • Gość
problem ze screen'em
« Odpowiedź #1 dnia: 2006-01-25, 13:20:03 »
killall -KILL tc

2006-01-25 12:40:58 Logrox napisał:

 > PS.
 > Sory za ortografie, gramatyke

zamiast przepraszac lepiej by bylo, gdybys sie nauczyl / uzyl jakiegos programu do sprawdzania... ;-)

Logrox

  • Gość
problem ze screen'em
« Odpowiedź #2 dnia: 2006-01-25, 19:13:11 »
2006-01-25 13:20:03 chmooreck napisał:

> killall -KILL tc

musze cie zmartwić :(.
to nie pomogło.
mogą tego polecenia urzywac bez końca.
niebyło komunikatu \\"tc: no process killed\\" ;(

hmm. co może być problemem? POMOCY

chmooreck

  • Gość
problem ze screen'em
« Odpowiedź #3 dnia: 2006-01-26, 10:16:21 »
killall -KILL tc
jest rownowazne z
kill -s 9 pid_tc

obydwa wysylaja ten sam sygnal

mozesz tez dac \\'killall -9 tc\\' to tez jest to samo...
poczytaj man\\'y obydwu polecen...

drugi sposob - pid procesu mozesz sobie gdzies zapisac i uzyc polecenia kill
np. tc & > tmp/tc.pid

ale skoro killall -KILL nie dziala, to kill -s 9 tez nie zadziala...

Logrox

  • Gość
problem ze screen'em
« Odpowiedź #4 dnia: 2007-01-07, 14:53:21 »
udalo sie polecenie bylo dobre co podawales. problemem bylo to ze ten proces byl odpalony przez inny program i dlatego niechcial sie zamknac. teraz jest ok.

divian

  • Gość
problem ze screen'em
« Odpowiedź #5 dnia: 2006-01-24, 23:29:49 »
Witam,
Czy da sie jakos killnac konkretnego screen'a nie po PID ale po nazwie na przyklad?

Bo sek jest w tym, ze chce dopisac do crona microdc, zeby co godzinke sie resetowal (potrzebuje aktualizacji listy co godzine, a z linii komend nic sie nie da zrobic, wywolanie "microdc &" tez nie idzie wiec jedynym ratunkiem jest wywolywanie programu ze screen'a).

Wiec wywoluje screen'a czyms takim:
"screen -m -d -S microdc microdc"
i teraz dobrze byloby umiescic przed tym cos do killowania screen'a nazwanego jako microdc bo "killall screen" raczej niezbyt praktyczne bedzie :/ probowalem juz na pare roznych sposobow, m.in "screen -S microdc -X kill" itp itd ale zaden z nich nie dzialal jak powinien.

pozdrawiam,
divian

// mam nadzieje, ze trafilem z tematem w dobry dzial :)

chmooreck

  • Gość
problem ze screen'em
« Odpowiedź #6 dnia: 2006-01-24, 23:48:15 »
2006-01-24 23:29:49 divian napisał:

 > Bo sek jest w tym, ze chce dopisac do crona microdc, zeby co godzinke sie resetowal (potrzebuje
 > aktualizacji listy co godzine, a z linii komend nic sie nie da zrobic, wywolanie "microdc
 > &" tez nie idzie wiec jedynym ratunkiem jest wywolywanie programu ze screen'a).

jak to nic sie nie da zrobic ? jak probujesz go uruchomic ? tzn jak wyglada to uruchamianie w crontabiie ?

divian

  • Gość
problem ze screen'em
« Odpowiedź #7 dnia: 2006-01-25, 00:21:47 »
2006-01-24 23:48:15 chmooreck napisał:
 > jak to nic sie nie da zrobic ? jak probujesz go uruchomic ? tzn jak wyglada to uruchamianie w
 > crontabiie ?

chodzi o to ze z nie moge przekazac parametru do programu z zewnatrz bo microdc nie ma zadnych funkcji takich (np microdc --refresh) :)

sorry za wszelkie niezrozumiale sformulowania ale juz wykonczony po calym dniu jestem i wszelkie niescislosci postaram sie wyjasniac na biezaco :)

a co do crontaba to wywolanie microdc odbywa sie poprzez:
"screen -m -d -S microdc microdc" // wewnatrz skryptu zapisanego w /etc/cron.hourly :)

brakuje mi jedynie czegos, co killowaloby tego screen'a wczesniej ;/

moze zasade tego, co chce osiagnac wyjasni niedzialajacy niestety przyklad:

"screen -S microdc -X kill;screen -m -d -S microdc microdc"

a tak jak juz pisalem korzystanie z "killall screen" w crontabie bardzo niepraktyczne bedzie.

chmooreck

  • Gość
problem ze screen'em
« Odpowiedź #8 dnia: 2006-01-25, 08:12:31 »
a to nie prosciej kill'nac microdc i potem go wystartowac ?? przeciez chyba o to ci chodzi ?

killall microdc && microdc
??

divian

  • Gość
problem ze screen'em
« Odpowiedź #9 dnia: 2006-01-25, 10:46:12 »
2006-01-25 08:12:31 chmooreck napisał:

> a to nie prosciej kill'nac microdc i potem go wystartowac ?? przeciez chyba o to ci chodzi ?
 >
 > killall microdc && microdc
 > ??
 >

tak byloby najprosciej ale to nie wchodzi w gre, gdyz microdc nie moze byc uruchomione w tle (nawet przez "microdc &").
Owszem, moge killowac samo microdc i odpalac nowe na nowym screen'ie ale po np. 10 godzinach bede mial 10 zdetachowanych screen'ow... a najoptymalniej byloby, zeby skrypt od razu sprzatal nieuzywanego screen'a, ew. jakos przekazac wywolanie microdc do starego tylko juz nie mam pojecia jak to zrobic :/

divian

  • Gość
problem ze screen'em
« Odpowiedź #10 dnia: 2006-01-25, 10:53:26 »
juz rozwiazalem problem :) wlasnie o killall chodzilo :)

"killall microdc;screen -m -d -S microdc microdc"

i dziala elegancko bez odpalania nowych screen'ow :)


wielkie dzieki chmooreck za zainteresowanie i podpowiedz :) jak to mowia "najciemniej pod latarnia" :)