gedit 명령이 실행되는 동안 터미널을 사용할 수 없습니다


44

최근에 12.04를 설치했습니다. gedit 사용하여
파일을 편집하려고 할 때 편집 파일을 닫거나 새 터미널을 열어야 만 터미널을 사용할 수 있습니다. 그러나 나는 11.04 에서이 문제가 없다고 생각하지만 확실하지 않습니다. 어쨌든 이것을 피하고 파일을 편집하는 동안 동일한 터미널을 사용하는 것이 있습니까?

답변:


80

짧은 답변

응답이없는 터미널에서 :

  1. Ctrl+를 누르십시오 Z.
  2. 입력 bg하고 입력하십시오.
  3. 입력 disown하고 입력하십시오.

긴 답변

응답이없는 터미널에서 Ctrl+를 Z누르면 프로세스가 "일시 중지"되고 (또는 "작업") 콘솔 컨트롤이 사용자에게 반환됩니다. 그러나 gedit응답하지 않아 사용할 수 없습니다.

추가 : 당신이, 당신이 명령을 실행하려는 경우 jobs, 당신이 그것을 읽어 줄 테니 것을 알 수 있습니다 중지 에 대한 gedit의 왜 당신이 그것을 사용할 수 없습니다, 명령.

백그라운드에서 작업을 성공적으로 실행하려면 (즉 gedit, 다시 응답하도록) 명령을 실행하십시오 bg(배경을 의미 함). 이제를 사용할 수 gedit있으며 동시에 자신에게 프롬프트가 표시됩니다.

추가 : 이제 실행 jobs하면 Running 이라는 메시지가 나타납니다 .

처음부터이 모든 것을 극복 할 수 있습니다. gedit터미널에서 시작할 때 &다음과 같이 명령 끝에에를 추가 하십시오 gedit /path/to/file &. 이것은 gedit처음부터 백그라운드에서 시작 됩니다 ( Enter콘솔 컨트롤을 되찾기 위해 몇 번 누르십시오 ).

추가 :이 여분의 노트를 따르고 있다면, 두 번째로했을 때 jobsbash &gedit명령 끝에 a 를 추가 한 것을 알 수 있습니다 .

이 시스템에 익숙해지면 터미널을 닫으면 확인 대화 상자가 없어도 gedit도 종료됩니다. 이를 방지하려면을 실행 disown하십시오. 그러면 gedit 프로세스가 터미널에서 분리되어에서 반환 된 목록에서 제거됩니다 jobs.


2
포 그라운드에서 실행중인 프로세스를 즉시 백그라운드로 지정할 수있는 방법이 없다는 것이 항상 놀랍습니다. 당신 때때로 가능한하지 않은, 먼저 일시 정지 할 수 있습니다.
detly

@detly "당신은 극복 할 수 있습니다 ..."부분을 다시 읽어보세요!
guntbert

@guntbert-프로세스가 이미 실행중인 경우 도움이되지 않습니다 ...
detly

44

그냥 입력하십시오 :

gedit <filename-to-edit> &

그러면 즉시 명령 프롬프트가 나타납니다.


5
이것은 중요한 유닉스 관용구이며 알만한 가치가 있습니다. 이 방법으로 백그라운드에서 모든 명령을 실행할 수 있습니다. 대화식 도구는 분명히이 처리에 의해 혼동 될 수 있지만, 예를 들어 bubblesort war_and_peace.txt %를 사용하면 작업을 진행하는 동안 (즉, 퀵 정렬을 구현하는 동안) 분류 기가 걸작품에서 오랫동안 (크고 오랜 시간 동안) 크랭크 될 수 있습니다. 또는 뭔가)
Jon Kiparsky

1
@ JonKiparsky 재미있는 예-요점을합니다.
Joe

25

를 사용하여 nohupGUI가 터미널에 연결되지 않도록 할 수 있습니다 .

nohup mupdf some.pdf &

그러면 프로그램을 닫지 않고도 시작중인 터미널을 닫을 수 있습니다.

또한 nohup 명령은 stdoutand 명령을 사용하여 파일을 작성 stderr합니다. 이를 방지하려면 앞에을 추가 &>/dev/null하십시오 &.

nohup mupdf some.pdf &>/dev/null &

4
"nohup"은 "no hang up"을 나타냅니다. 이것은 (물리적) 터미널이 전화선을 통해 정기적으로 연결되어 있던 초기 Unix로 거슬러 올라갑니다. 따라서 전화를 끊어 터미널을 닫습니다.
MSalters

3
추가 정보 : nohup 명령은 명령의 nohup.out출력을 포함 하는 파일 을 작성합니다 . 오류 메시지를 보려는 경우에 유용합니다. 파일을 생성하지 않으려면 다음과 같이 리디렉션을 추가하십시오.nohup mupdf some.pdf &>/dev/null &
Paddy Landau

19

disown명령 을 사용할 수도 있습니다 . 더 이상 터미널에 연결하지 않으려는 프로세스를 이미 시작한 경우 특히 유용합니다.

올바르게 기억한다면 기본 절차는 다음과 같습니다.

$ > firefox      #Oops
Ctrl + z         #Suspend the process
$ > bg           #Push the process to the background
$ > disown       #Detach most recent process started or stopped
$ > exit         #Terminal gone!

disown은 bash구체적입니다.

이 블로그 게시물은 두 가지 방법을 모두 잘 설명합니다.

Disown에 대한 맨 페이지


바로 가기 :firefox & disown
Flimm

13

보낸 사람 man gedit:

-b, --background
         Run gedit in the background.

당신이 실행하는 경우 그래서, gedit함께 -b옵션, 그것은 백그라운드에서 시작됩니다 :

gedit -b [FILE-NAME]

또한, 다음 당신의 별칭을 만들 수 있습니다 gedit -b(참조 여기에 영구적 인 별칭을 만드는 방법) :

alias gedit='gedit -b'

이제부터는 앞으로 gedit [FILE-NAME]정상적으로 사용할 수 있으며 백그라운드에서 시작됩니다.


2
별칭을 사용하여 일반적인 명령을 재정의하는 것은 좋지 않습니다. stackexchange에서 많은 스레드를 찾을 수 있습니다. 다른 이름의 별칭을 사용하는 것이 좋습니다. 간단히 말해서, 기존 명령의 앨리어싱은 다른 사람이 다른 문제를 해결하려고 할 때와 같이 다른 명령을 사용하는 경우 컴퓨터에서 예기치 않은 동작을 생성하며 해당 별칭과 명령없이 다른 시스템을 사용할 때도 동일한 작업을 수행합니다 예상대로 작동하지 않습니다. 이것의 포스터 자식 중 하나는 alias rm = 'rm -i'입니다. 항상 존재하지 않는 두 번째 기회로 물건을 삭제하는 데 익숙해집니다.
Joe

10

그냥 입력하십시오 :

gedit FILENAME & disown

&bash에서 명령을 끝내면 백그라운드에서 해당 명령이 실행됩니다. 그러나 해당 프로세스는 여전히 터미널에 연결되어 있습니다.

이 없으면 disown터미널을 닫으면 편집 한 파일을 저장하라는 메시지가 표시되지 않아도 gedit가 닫힙니다. disown터미널을 닫아도 gedit는 계속 정상적으로 실행되도록 백그라운드 프로세스를 현재 터미널에서 분리합니다. 내가 틀렸다는 것이 밝혀졌다. 이것은 bash의 경우는 아니지만 zsh의 경우이다. 그러나 bash에서도 - 및 을 수행 detach한 후에도 여전히 실행해야합니다 .ctrlzbg

당신은 내장 기능에 대해 자세히 알 수 있습니다 jobs, disown그리고 &에서 메타 문자 에 대한 맨 페이지 bash명령맨 페이지 아이콘 "작업 제어"라는 레이블이 특히 절을 참조하십시오.


disown나는 터미널 폐쇄 후 열기의 gedit을 유지 할 수 있었다. "당신은 bash의 경우는 아니지만 zsh의 경우"에 대해 당신이 말한 것을 얻지 못했습니다
KrIsHnA

0

터미널을 통해 gedit을 열었 기 때문일 수 있습니다. 이를 수행하면 GUI를 통해 시작하면 일반적으로 숨겨지는 명령 행 출력이 표시됩니다. 이 문제를 해결하는 가장 좋은 방법은 새 터미널 창을 여는 것입니다. 다른 하나는 gedit가 닫힌 후에 사용할 수있게됩니다. 위의 사용자가 제안한 스위치를 사용할 수도 있습니다.


새로운 터미널 윈도우는 데스크탑이 최소화되어 있어도 혼란을줍니다. 폐기 여부와 상관없이 &를 사용하는 것이 훨씬 간단하고 깨끗합니다.
Joe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.