programing

비동기 셸 명령

cafebook 2023. 4. 28. 21:31
반응형

비동기 셸 명령

셸 스크립트를 사용하여 명령을 시작하려고 합니다.나는 그것이 끝나든/언제/어떻게/왜 끝나든 상관하지 않습니다.프로세스가 시작되고 실행되기를 원하지만 즉시 제 껍질로 돌아갈 수 있기를 원합니다.

스크립트를 백그라운드에서 실행하면 됩니다.

$ 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

반응형