zsh를 종료하지만 실행 중인 작업을 열어두시겠습니까?
방금 bash에서 zsh로 바꿨어요
bash에서는 셸이 종료될 때 백그라운드 작업이 계속 실행됩니다.예를 들어, 여기 있습니다.dolphin
다음 시간 이후에 계속 실행됩니다.exit
:
$ dolphin .
^Z
[1]+ Stopped dolphin .
$ bg
[1]+ dolphin . &
$ exit
이것이 기본 동작으로 원하는 것입니다.
이와는 대조적으로 zsh의 동작은 작업 실행에 대해 경고하는 것입니다.exit
, 다음 경우 닫으십시오.exit
다시요. 예를 들면, 여기,dolphin
두 번째가 되면 닫힙니다.exit
-명령어는 실제로 셸을 종료합니다.
% dolphin .
^Z
zsh: suspended dolphin .
% bg
[1] + continued dolphin .
% exit
zsh: you have running jobs.
% exit
여기서 zsh의 기본 동작을 bash와 같이 설정하려면 어떻게 해야 합니까?
다음을 사용하여 프로그램을 시작합니다.&!
:
dolphin &!
그&!
(또는&|
이와 동등하게 )은 셸을 종료하면 실행 상태를 유지할 수 있도록 백그라운드에서 프로세스를 해제하는 zsh 관련 바로 가기입니다.
zsh 설명서에서 다음을 수행합니다.
HUP
... zsh에서는 셸이 종료될 때 백그라운드 작업이 실행 중인 경우 셸은 사용자가 이 작업을 종료하기를 원하는 것으로 간주합니다. 이 경우 이 작업은 다음과 같은 특정 신호를 보냅니다.
SIGHUP
... 셸이 종료된 경우에도 계속 진행되어야 하는 작업을 자주 시작하는 경우 옵션을 설정할 수 있습니다.NO_HUP
백그라운드 작업은 그대로 유지됩니다.
그러니까 그냥 세팅만NO_HUP
옵션을 선택합니다.
% setopt NO_HUP
이 두 가지를 조합한 결과입니다.nohup
,&
,그리고.disown
셸이 종료될 때 작업을 영구적으로 실행시키지 않기 때문에 이 방법이 효과적입니다.
nohup <command> & disown
그냥요&
에서 저를 위해 일했습니다.bash
,만 사용할 때 찾았습니다.nohup
,&
, 또는 을(를)disown
java run 명령을 호출하는 스크립트와 같이 실행 중인 명령에서는 셸이 종료될 때 프로세스가 계속 중지됩니다.
nohup
명령을 무시합니다.NOHUP
그리고.SIGHUP
껍데기로부터의 신호입니다.&
하위 터미널의 백그라운드에서 프로세스를 실행합니다.disown
인수 뒤에 오는 인수(작업 목록의 작업 번호 색인)는 셸이 데이터를 전송하지 못하도록 합니다.SIGHUP
하위 프로세스에 신호를 보냅니다.사용.disown
인수를 지정하지 않으면 기본적으로 가장 최근의 작업으로 설정됩니다.
제가 찾았어요.nohup
그리고.disown
이 페이지의 정보를 참조하십시오.&
SO 답변에 정보가 있습니다.
갱신하다
제가 처음 이 글을 썼을 때는 데이터 처리 스크립트/프로그램에 사용하고 있었습니다.이러한 사용 ts
사례의 경우 (태스크 스풀러)와 같은 것이 잘 작동합니다.
저는 주로 사용합니다.screen
백그라운드 작업을 계속 실행할 수 있습니다.
1) 화면 세션을 만듭니다.
screen -S myScreenName
2) 스크립트, 서비스, 데몬 등을 실행합니다.
3) 다음을 사용하여 화면 세션을 종료합니다(분리).
screen -d
바로 가기입니다.ALT+A then d
몇 백 년 후 - 세션을 재개하려면(재첨부) 다음을 수행합니다.
screen -r myScreenName
화면 세션, 이름 및 상태(첨부 또는 분리됨)를 알고 싶다면 다음을 수행하십시오.
screen -ls
이 솔루션은 bash, zsh 등과 같은 모든 터미널 인터프리터에서 작동합니다.참고하세요.man screen
언급URL : https://stackoverflow.com/questions/19302913/exit-zsh-but-leave-running-jobs-open 입니다.
'source' 카테고리의 다른 글
ADO와 DAO의 차이입니다. (0) | 2023.04.25 |
---|---|
C#의 목록에서 중복 항목을 제거합니다. (0) | 2023.04.25 |
Git에서 커밋을 푸시할 때 'src refspec master does match any' 메시지가 표시됩니다. (0) | 2023.04.25 |
대답.새 창으로 리디렉션합니다. (0) | 2023.04.25 |
pywin32에서 숫자 COM 오류 코드를 디코딩하는 방법이 있습니까? (0) | 2023.04.20 |