비동기 셸 명령
셸 스크립트를 사용하여 명령을 시작하려고 합니다.나는 그것이 끝나든/언제/어떻게/왜 끝나든 상관하지 않습니다.프로세스가 시작되고 실행되기를 원하지만 즉시 제 껍질로 돌아갈 수 있기를 원합니다.
스크립트를 백그라운드에서 실행하면 됩니다.
$ myscript &
참고로 이것은 다음과 다릅니다.&
당신이 원하는 것을 하지 못할 수도 있습니다.
다들 잊어버렸어요disown
다음은 요약입니다.
&
작업을 백그라운드에서 수행합니다.- 입력을 읽으려는 시도를 차단합니다.
- 셸이 완료될 때까지 기다리지 않도록 합니다.
disown
셸의 작업 제어에서 프로세스를 제거하지만 터미널에 연결된 상태로 둡니다.- 그 결과 중 하나는 셸이 그것을 보내지 않는다는 것입니다.
SIGHUP
(쉘이 수신하는 경우SIGHUP
그것은 또한 보냅니다.SIGHUP
일반적으로 프로세스가 종료되는 원인이 됩니다.). - 또한 백그라운드 작업에만 적용할 수 있습니다(포그라운드 작업이 실행 중일 때는 입력할 수 없기 때문에).
- 그 결과 중 하나는 셸이 그것을 보내지 않는다는 것입니다.
nohup
프로세스를 터미널에서 분리하고 출력을 리디렉션합니다.nohup.out
그리고 그것으로부터 그것을 보호합니다.SIGHUP
.- 프로세스에서 전송된 내용을 수신하지 않습니다.
SIGHUP
. - 작업 제어와 완전히 독립적이며 원칙적으로 전경 작업에도 사용할 수 있습니다(별로 유용하지는 않지만).
- 일반적으로 사용됨
&
(배경 작업으로).
- 프로세스에서 전송된 내용을 수신하지 않습니다.
nohup cmd
단말기를 닫을 때 전화를 끊지 않습니다.기본적으로 출력은 noup으로 이동합니다.나가.
이것을 배경과 결합할 수 있습니다.
nohup cmd &
출력물을 제거하고,
nohup cmd > /dev/null 2>&1 &
당신은 또한 할 수 있습니다.disown
명령유형cmd
,Ctrl-Z
,bg
,disown
또는 프로그램을 실행한 후 Ctrl-Z를 누르면 프로그램이 중지되고 다음을 입력할 수 있습니다.
bg
마지막으로 중지된 프로그램을 백그라운드에 배치합니다.('&'을 사용하지 않고 무언가를 시작했지만 다시 시작하지 않고 백그라운드에서 원하는 경우 유용합니다.)
screen -m -d $command$
분리된 세션에서 명령을 시작합니다.사용할 수 있습니다.screen -r
시작된 세션에 연결합니다.원격 세션에서도 매우 유용한 훌륭한 도구입니다.자세한 내용은 다음 웹 사이트에서man screen
.
언급URL : https://stackoverflow.com/questions/2368137/asynchronous-shell-commands
'programing' 카테고리의 다른 글
Azure powershell 선택-AzureSubscription - 오류: 구독 이름이 없습니다. (0) | 2023.04.28 |
---|---|
VBA에서 텍스트 파일을 한 줄씩 읽고 구문 분석 (0) | 2023.04.28 |
PowerShell 2.0에서 '일시 중지'를 수행하는 방법은 무엇입니까? (0) | 2023.04.28 |
ASP에서 파일(FileContentResult)을 반환하는 방법.NET 웹 API (0) | 2023.04.28 |
.NET 문자열.형식() - 숫자에 대해 수천 개의 위치에 쉼표를 추가합니다. (0) | 2023.04.28 |