Krótka odpowiedź
W niereagującym terminalu:
- Hit Ctrl+ Z.
- Wpisz
bg
i wpisz.
- Wpisz
disown
i wpisz.
Długa odpowiedź
W nieodpowiadającym terminalu naciśnij Ctrl+ Z, to „wstrzyma” proces (lub „zadanie”) i zwróci ci kontrolę nad konsolą. Zauważysz jednak, że gedit
przestaje odpowiadać i nie możesz z niego korzystać.
Dodatkowo : jeśli chcesz, możesz wykonać polecenie jobs
, zauważysz, że będzie ono brzmiało Zatrzymane dla gedit
polecenia, dlatego nie możesz go użyć.
Aby zadanie zakończyło się powodzeniem w tle (tj. Aby gedit
ponownie odpowiedzieć), wykonaj polecenie bg
(w tle). Będziesz teraz mógł korzystać gedit
, a jednocześnie wyświetlać odpowiedni monit.
Dodatkowo : teraz, jeśli wykonasz jobs
, zauważysz, że będzie czytać Uruchomienie .
Możesz przezwyciężyć to wszystko od samego początku. Kiedy uruchamiasz gedit
z terminala, dodaj &
na końcu polecenia, więc coś takiego gedit /path/to/file &
. To uruchomi się gedit
w tle od samego początku (może być konieczne Enterkilkukrotne naciśnięcie, aby przywrócić kontrolę nad konsolą).
Dodatkowo : jeśli postępujesz zgodnie z tymi dodatkowymi notatkami, możesz zauważyć, że po raz drugi zrobiłeś to jobs
, zobaczyłeś, że bash dodał a &
na końcu gedit
polecenia.
Gdy przyzwyczaisz się do tego systemu, możesz zauważyć, że jeśli zamkniesz terminal, gedit również zakończy działanie, nawet bez okna dialogowego potwierdzenia. Aby temu zapobiec, uruchom disown
, który odłączy proces gedit od terminala, usuwając go z listy zwracanej przez jobs
.
Po prostu wpisz:
gedit <filename-to-edit> &
To natychmiast zwróci ci wiersz polecenia.
źródło
Możesz użyć,
nohup
aby zapobiec podłączeniu GUI do terminala:Umożliwi to zamknięcie terminalu, z którego uruchamiasz, bez zamykania programu.
Należy również zauważyć, że polecenie nohup utworzy plik z
stdout
istderr
polecenia biegu. Jeśli chcesz temu zapobiec, dodaj&>/dev/null
przed&
.źródło
nohup.out
zawierający dane wyjściowe polecenia. Jest to przydatne, jeśli chcesz wyświetlić komunikaty o błędach. Jeśli nie chcesz, aby plik został utworzony, dodaj przekierowanie w następujący sposób:nohup mupdf some.pdf &>/dev/null &
Możesz także użyć
disown
polecenia. Jest to szczególnie przydatne, gdy już rozpocząłeś proces, którego nie chcesz już podłączać do terminala.Podstawową procedurą, jeśli dobrze pamiętam, jest coś takiego:
Zauważ, że disown jest
bash
specyficzny.Ten post na blogu całkiem dobrze wyjaśnia obie metody.
Strona podręcznika do odrzucenia
źródło
firefox & disown
Od
man gedit
:Jeśli uruchomisz
gedit
z-b
opcją, rozpocznie się w tle:Ponadto możesz następnie utworzyć alias dla
gedit -b
(zobacz tutaj, jak utworzyć stały alias):Odtąd w przyszłości będziesz mógł używać
gedit [FILE-NAME]
go normalnie i zacznie on działać w tle.źródło
Po prostu wpisz:
Zakończenie polecenia za pomocą
&
bash uruchamia to polecenie w tle. Jednak proces ten jest nadal dołączony do terminala.BezOkazuje się, że się myliłem, nie dotyczy to bash, ale dotyczy to zsh. Nadal musisz biegaćdisown
, jeśli zamkniesz terminal, gedit zamknie się, nawet nie monitując o zapisanie edytowanego pliku.disown
odłącza proces w tle od bieżącego terminala, więc jeśli zamkniesz terminal, gedit będzie działał normalnie.detach
po zrobieniu ctrl- zibg
nawet w bash.Możesz dowiedzieć się więcej na temat wbudowanego ins
jobs
,disown
a&
metaznaku w podręcznika dobash
polecenia , szczególnie sekcji oznaczonej „Sterowanie pracą”.źródło
disown
byłem w stanie utrzymać gedit otwarty po zamknięciu terminala. Nie dostałem tego, co powiedziałeś o „nie chodzi o bash, ale tak jest w przypadku zsh”Jest tak prawdopodobnie dlatego, że otworzyłeś gedit przez terminal. Gdy to zrobisz, zobaczysz wyjście wiersza poleceń, które normalnie jest ukryte, jeśli zostanie uruchomione przez GUI. Najlepszym sposobem, aby to naprawić, jest otwarcie nowego okna terminala. Drugi będzie dostępny po zamknięciu programu gedit. Możesz także użyć przełącznika sugerowanego powyżej przez użytkownika.
źródło