Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Jest sobie serwer X. Serwer X uruchamia jakiś tam program, nazwijmy go Y. Ten program Y uruchamia jeszcze jakiś kolejny program, dajmy na to Z.
Chciałbym żeby Z ubiło Y oraz X a potem uruchomiło ponownie Y (który już sobie postawi X kiedy trzeba).
Ponowne uruchamianie Y jest proste, ale problem w tym że z chwilą kiedy Z ubija Y, Y ubija również Z (ponieważ Z jest jego - Y - potomkiem). Z zostaje więc zakończony i nie tyka serwera X, o ponownym uruchomieniu Y nie wspominając.
Mam do dyspozycji tylko shella. Da się to w ogóle jakoś zrobić? Zwykłe uruchomienie funkcji z & na końcu nic nie zmienia.
Ostatnio edytowany przez Minio (2010-11-21 21:40:36)
Offline
nie wiem czy do konca o to chodzi, ale cos takiego dziala:
1. bash (pid=100) odpala screena (pid=101) z bashem (pid 102)
2. z powloki screenowej dajemy kill -9 100 ... wszystko znika
3. ps -f pokazuje ze screen dalej zyje (rozdicem stal sie init) ... do screena mozemy sie przylaczyc ponownie poprzez screen -d -r
Offline
A nohup ?
Jeżeli zginie proces który ma dzieci to te dzieci są adoptowane przez inita, wiec problemu nie ma jesli o to chodzi...
Offline
bercik: o, właśnie o screena mi chodziło. Szczerze mówiąc też nie wiem czy do końca o to chodzi, ale spełnił swoje zadanie.
milyges: to nie do końca tak jest. Jak zrobię np.:
feh coś-tam.jpg ctrl+z (background) bg 1
i wyłączę terminal, to faktycznie init adoptuje feh-a. Jeśli zaś zrobię
feh coś-tam.jpg &
i wyłączę terminal to feh też znika.
Nie wnikałem od czego to konkretnie zależy, pewnie jest jakaś różnica. jak wyżej — screen spełnił swoje zadanie, więc wątek uważam za zakończony.
Offline
Strony: 1