Rozpocznij nowy proces bez blokowania terminala

47

Czy można to zrobić? Na przykład, jeśli uruchomię „ gedit tifatul.txt” za pomocą wiersza poleceń, mój terminal zostanie zablokowany i nie będę mógł wprowadzić innych poleceń w tym terminalu przed wyjściem z programu gedit. Czy mogę uruchomić program (jak gedit) bez blokowania terminala? Myślę, że w systemie Windows można to zrobić jak „ start notepad tifatul.txt

TifatulS
źródło
Co masz na myśli przez zablokowane?
@PedroDiniz oznacza, że ​​nie mogę wpisać innego polecenia do terminala, gdy uruchomiony jest gedit. Jeśli masz system Windows, wypróbuj różnicę między uruchomieniem notepad(zablokowane) a start notepad(niezablokowane)
TifatulS 28.04.13

Odpowiedzi:

68

Po prostu dodaj &na końcu polecenia. To sprawia, że ​​nowy proces działa w tle i możesz kontynuować korzystanie z terminala. Na przykład:gedit new_file.txt &

Daniel Yuste Aroca
źródło
Nawiasem mówiąc, czy znasz dokumentację dotyczącą tego zachowania? Czy to tylko dla gedit?
TifatulS
1
Ta funkcja procesu w tle jest zapewniana przez powłokę, więc nie działa ona tylko dla gedit, ale dla każdego polecenia uruchamianego w powłoce.
Daniel Yuste Aroca
tak, dzięki za odpowiedź. Miałem się z tym pogodzić, ale system wymaga ode mnie następnych kilku minut
TifatulS
Zaakceptowane i ocenione :) Przy okazji, jak nazywa się ta funkcja?
TifatulS
Ta funkcja nazywa się działaniem procesów w tle lub działaniem procesów w tle.
Daniel Yuste Aroca
21

Chciałbym ci polecić nohup gedit filename &. Po prostu gedit filename &ponosisz ryzyko przypadkowego zamknięcia terminala i utraty edycji. Jeśli nie lubisz nohup.outtworzenia za każdym razem, po prostu przekieruj dane wyjściowe:

nohup gedit filename > /dev/null &
zamrożony płomień
źródło