Linux 명령을 백그라운드에서 실행하는 방법

Linux 명령을 백그라운드에서 실행하는 방법

2022-05-31 last update

7 minutes reading bg terminal nohup disown fg jobs
일반적으로 터미널에서 명령을 실행할 때는 명령이 완료될 때까지 기다려야 다른 명령을 입력할 수 있습니다.이것은 프론트 데스크톱이나 프론트 데스크톱 프로세스에서 명령을 실행하는 것을 말한다.프로세스가 프론트에서 실행될 때, 셸을 차지하고, 입력 장치를 사용하여 상호작용을 할 수 있습니다.명령을 완료하는 데 시간이 오래 걸리고 다른 명령을 동시에 실행하려면 어떻게 해야 합니까?너는 선택할 수 있는 몇 가지 선택이 있다.가장 뚜렷하고 직접적인 선택은 새 셸 세션을 시작하고 명령을 실행하는 것입니다.또 다른 옵션은 백그라운드에서 명령을 실행하는 것입니다.백그라운드 프로세스는 사용자 상호 작용 없이 터미널에서 시작하여 백그라운드에서 실행되는 프로세스/명령입니다.본문에서 우리는 Linux의 백그라운드 프로세스를 토론할 것이다.백그라운드에서 명령을 시작하는 방법과 셸 세션이 닫힌 후에 프로세스를 실행하는 방법을 보여 드리겠습니다.

백그라운드에서 Linux 명령 실행

명령을 백그라운드에서 실행하려면 명령 끝에 기호 & 를 추가합니다.
command &
케이스 작업 ID (괄호로 묶음) 와 프로세스 ID는 터미널에 인쇄됩니다.
[1] 25177
백그라운드에서 여러 프로세스를 동시에 실행할 수 있습니다.백그라운드 프로세스는 명령을 호출하는 터미널에 메시지를 계속 기록합니다.stdoutstderr 메시지를 억제하려면
command > /dev/null 2>&1 & 
>/dev/null 2>&1 에서 stdout /dev/null to stderr 까지의 방향을 나타냅니다.
.stdout 유틸리티를 사용하여 현재 셸 세션의 모든 중지 및 백그라운드 작업 상태를 표시합니다.
jobs -l
출력에는 작업 번호, 프로세스 ID, 작업 상태 및 작업 시작 명령이 포함됩니다.
[1]+ 25177 Running                 ping google.com &
백그라운드 프로세스를 백그라운드에 놓으려면 jobs 명령을 사용하십시오.
fg
백그라운드 작업이 여러 개 있는 경우포함 fg 및 명령 후 작업 ID:
fg %1
백그라운드 프로세스를 종료하려면 %
명령, 후면 프로세스 ID:
kill -9 25177

프론트 데스크톱 프로세스를 백그라운드로 이동

, 실행 중인 프런트 프로세스를 백그라운드에서 이동합니다.
  • 입력을 통해 프로세스를 중지합니다.
  • 을 입력하여 중지된 프로세스를 백그라운드로 이동합니다.
  • 셸 종료 후 백그라운드 프로세스 실행 유지

    연결이 끊어지거나 셸 세션을 종료하면 백그라운드 프로세스가 종료됩니다.대화식 셸 세션이 끝난 후에 프로세스를 실행할 수 있는 몇 가지 방법이 있습니다.하나의 방법은 kill 셸 내장을 사용하는 것입니다.
    disown
    셸의 작업 컨트롤에서 작업을 삭제합니다. 백그라운드 작업이 여러 개 있으면 명령:
    disown %1
    뒤에 Ctrl+Z 및 작업 ID가 포함되어 있습니다. bg 명령을 사용하여 활성 작업표에서 작업을 삭제했는지 확인하십시오.운영 프로세스가 없는 프로세스를 포함하여 실행 중인 모든 프로세스를 표시하려면 disown
    명령(adsbygoogle=window.adsbygoogle | |[]).푸시({});셸이 종료된 후에 프로세스를 실행하는 또 다른 방법은 % 를 사용하는 것이다. jobs -l
    명령은 매개변수로 지정된 다른 프로그램을 실행하고 모든 신호 ps aux 를 무시합니다.nohup는 프로세스의 제어 단말기가 닫힐 때 프로세스에 보내는 신호이다.nohup 명령을 사용하여 백그라운드에서 명령을 실행하려면:
    nohup command &
    명령 출력이 SIGHUP 파일로 리디렉션됩니다.
    nohup: ignoring input and appending output to 'nohup.out'
    
    터미널을 로그아웃하거나 닫으면 프로세스가 종료되지 않습니다.

    선택

    여러 개의 대화식 세션을 동시에 사용할 수 있는 프로그램이 많습니다.

    스크린

    Screen
    또는 GNU Screen은 화면 세션을 시작하고 해당 세션의 모든 창(가상 터미널)을 열 수 있는 터미널 다중 복용기 프로그램입니다.연결을 끊더라도 화면에서 실행되는 프로세스는 창이 보이지 않을 때 계속 실행됩니다.

    Tmux

    Tmux
    GNU 스크린의 현대적인 대안입니다.Tmux를 사용하면 세션을 만들고 여러 창을 열 수 있습니다.Tmux 세션은 오래 지속됩니다. 이것은 터미널을 닫아도 Tmux에서 실행되는 프로그램이 계속 실행된다는 것을 의미합니다.

    결론

    백그라운드에서 명령을 실행하려면 명령 끝에 SIGHUP 를 포함합니다.백그라운드에서 명령을 실행할 때 명령이 끝난 후에 다른 명령을 실행할 필요가 없다.질문이나 피드백이 있으면 언제든지 의견을 발표하십시오.