Konsola, jak wyjśc z dowolnego programu?


(Alan Elektro) #1

Witam!

Od paru dni dręczy mnie pytanie. W jaki sposób mogę wyjść z programu aby albo go zamknąć albo niech sobie tam pracuje w tle, a ja bym mógł się dostać do normalnego znaku zachęty (wiem że to nie tak się nazywa ale chodzi mi o to gdzie jest katalog i nazwa użytkownika m.in) i wpisywać polecenia. W programie co kolwiek napiszę jest od razu przy lewej krawędzi i nie reaguje na żadne polecenia.

Mam nadzieje że macie wyobrażenie.

Tak jest w wielu programach na konsole tekstową.

Prosze o pomoc.

Pozdrawiam


(Kaka') #2

Jeżeli pracujesz na terminalu typu np. gnome-terminal, to albo odpalasz inną zakładkę, albo całkiem nowe okno. W przypadku kiedy chcesz pracować tylko na jednej zakładce, albo na "zwykłej konsoli" (ctrl + alt + fx), to po nazwie programu dodaj znak &, co odpali go w tle i wróci dostęp do konsoli.

Poczytaj też o screenie.


(Kinemator) #3

Możesz też użyć Ctrl + Z (zawiesza proces) później wpisać bg.

Dodatkowo poczytaj o http://pl.wikipedia.org/wiki/Nohup


(bachus) #4

Tzw. screen, ale wcześniej aplikację trzeba uruchomić w trybie "screena". Działać ona też będzie po wylogowaniu z systemu (jak np. pracujesz na zdalnym terminalu).

Powiedzmy, że chcesz uruchomić program o nazwie "ekg" i chcesz mieć możliwość wygodnego do niego powrotu:

screen ekg

Aby do niego wrócić, wystarczy wpisać:

screen -r PID

Nie jest to wygodne, ponieważ musisz znać numer procesu (ps aux|grep ekg) Możesz więc się podłączyć do pierwszego z brzegu screena, do którego nie jesteś już podłączony (procesów screen możesz mieć tyle, ile dusza zapragnie - oczywiście jak administrator inaczej nie zastrzegł):

screen -r -x

Najwygodniej jednak, gdy używasz kilku screenów przed uruchomieniem "nazwać go", np:

screen -S ekg ekg

W momencie, jak chcesz się pod niego podpiąć:

screen -r ekg

p.s. opuszczenie takiej sesji "screen" to ctr+a d : najpierw wciskasz ctrl+d , puszczasz i naciskasz d


(Alan Elektro) #5

dzięki na pewno coś z tego wybiorę, w sumie jakoś udało mi się wyjśc dzięki screen :slight_smile:

to z PIDami to dla mnie nawet wygodne :slight_smile:

chodzi o to że ja pracuje na linuxie bez nakładki graficznej, i to jeszcze zdalnie, i teraz jak odpalę jakiś program, to nie moge później wrócić do tego wiersza gdzie mogę wpisywać polecenia, i musze dokonywać restartu komputera zdalnie, co czyni się do utraty danych, później od nowa muszę właczyć to co mi potrzeba...


(Airborn) #6

działający program zawsze można przerwać przez Ctrl + C, chociaż jeżeli program ma działać w tle to faktycznie lepiej odpalić go w tle poprzez dodanie &


(bachus) #7

Przerwij tak np. działanie "mc" (midnight commander)


(Airborn) #8

ale po co, jeżeli mc mogę wyłączyć w cywilizowany sposób (o ile zrozumiałem chodzi o programy nie umożliwiające zamknięcia w żaden domyślny sposób, albo nie wyświetlające prompta, czyli np top),taki program wyłączysz przez ctrl+c, a to lepsze niż restartowanie maszyny


(bachus) #9

Pytanie dotyczyło czego innego: jak zrobić, a nie "jaki jest tego cel".

Co do przykładu z mc: ktoś np. nie umie korzystać z ftp, czy wget a musi pobrać jakiś zasób wymagający logowania (nie anonymous). Wchodzi więc przez mc, zaczyna ściągać nieszczęsne 500MB a tu klops - transfer na poziomie 10KBs

O metodzie kolegi z restartowaniem maszyny to raczej nie będę dyskutował :]