![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 236 Pomógł: 4 Dołączył: 1.05.2006 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
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)? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałeś użyć killall do procesu uruchomionego w screenie? Po czymś takim, screen powinien się zamknąć.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 236 Pomógł: 4 Dołączył: 1.05.2006 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
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) Ten post edytował macza 14.12.2008, 19:55:09 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak wyżej, spróbuj zabić konkretny program uruchomiony w screenie, a nie samego screena.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 236 Pomógł: 4 Dołączył: 1.05.2006 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
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. Ten post edytował macza 14.12.2008, 20:12:17 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
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ć?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 236 Pomógł: 4 Dołączył: 1.05.2006 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 29.09.2025 - 03:26 |