Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyłączenie screen'a
Forum PHP.pl > Inne > Komputery i oprogramowanie
macza
Witam, jest takie polecenie w linux'ie jak screen. Wyłączyć dany screen można kombinacją klawiszy. Ale jak wykonać to bez włączania danego screena.
Przykład:
/ # screen -A -m -d -S nowy_screen ./jakis_program
/ # echo screen nowy_screen uruchomiono

Ok teraz aby go wyłączyć muszę:
/ # screen -r nowy_screen
i wybrać kombinacje klawiszy Ctrl+a > C

A jak to zrobić bez użycia kombinacji klawiszy (jakbym chciał to wykonać np przez cgi)?
l0ud
Próbowałeś użyć killall do procesu uruchomionego w screenie? Po czymś takim, screen powinien się zamknąć.
macza
Hmm... niby coś takiego załatwia sprawe: killall screen -r nowy_screen, ale wyłącza mi wszystkie screeny. A mi chodzi tylko o ten 1

Wypróbowałem jeszcze kill $id lecz ja nie znam danego $id screena (bo on się losuje sam)
l0ud
Jak wyżej, spróbuj zabić konkretny program uruchomiony w screenie, a nie samego screena.
macza
Cytat(l0ud @ 14.12.2008, 19:53:41 ) *
Jak wyżej, spróbuj zabić konkretny program uruchomiony w screenie, a nie samego screena.


Właśnie oto chodzi, iż dany program nie odpowiada, jeżeli otwieram screena (screen -r) to widzę konsolę programu, lecz nic nie mogę zrobić oprócz użycia Ctrl+A+C, nie mogę nic wpisać.


PS Znalazłem coś z bindowaniem poleceń. bind - można dzięki temu uzyskać kombinacje klawiszy, ale dalej to nie rozwiązuje problemu, ponieważ nie zawsze działa.
l0ud
Nie o to chodziło. Nie możesz po prostu na liście procesów odnaleźć tego właściwego - programu uruchomionego w screenie (a nie screena) i to go zabić?
macza
Cytat(l0ud @ 14.12.2008, 20:42:39 ) *
Nie o to chodziło. Nie możesz po prostu na liście procesów odnaleźć tego właściwego - programu uruchomionego w screenie (a nie screena) i to go zabić?


A jak mam uruchomione np 2 te same programy? np. EKG i EKG?
l0ud
Możesz jeszcze spróbować pobrać listę poprzez screen -ls a następnie wydobyć pid interesującego Cię screena ([pid].nazwa). Następnie wywołaj kill [pid] i w ten sposób go zakończ smile.gif
michalkjp
A czy z poziomu screena nie możesz po prostu zapisać gdzieś pid'a procesu? Tę informacje można chyba wyciągnąć z /proc/self/status - pierwsza liczba, to powinien być pid procesu o który Ci chodzi. Nie testowałem tego na screenie, bo nie chce mi się włączać Linuksa, ale powinno działać tak samo jak dla innych procesów. Spróbuj wykonać z linii poleceń cat /proc/self/status, to wyświetli Ci status aktualnej powłoki z której akurat korzystasz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.