
Linux 명령을 백그라운드에서 실행하는 방법
일반적으로 터미널에서 명령을 실행할 때는 명령이 완료될 때까지 기다려야 다른 명령을 입력할 수 있습니다.이것은 프론트 데스크톱이나 프론트 데스크톱 프로세스에서 명령을 실행하는 것을 말한다.프로세스가 프론트에서 실행될 때, 셸을 차지하고, 입력 장치를 사용하여 상호작용을 할 수 있습니다.명령을 완료하는 데 시간이 오래 걸리고 다른 명령을 동시에 실행하려면 어떻게 해야 합니까?너는 선택할 수 있는 몇 가지 선택이 있다.가장 뚜렷하고 직접적인 선택은 새 셸 세션을 시작하고 명령을 실행하는 것입니다.또 다른 옵션은 백그라운드에서 명령을 실행하는 것입니다.백그라운드 프로세스는 사용자 상호 작용 없이 터미널에서 시작하여 백그라운드에서 실행되는 프로세스/명령입니다.본문에서 우리는 Linux의 백그라운드 프로세스를 토론할 것이다.백그라운드에서 명령을 시작하는 방법과 셸 세션이 닫힌 후에 프로세스를 실행하는 방법을 보여 드리겠습니다.
.
명령, 후면 프로세스 ID: 입력을 통해 프로세스를 중지합니다. 을 입력하여 중지된 프로세스를 백그라운드로 이동합니다.
명령(adsbygoogle=window.adsbygoogle | |[]).푸시({});셸이 종료된 후에 프로세스를 실행하는 또 다른 방법은
명령은 매개변수로 지정된 다른 프로그램을 실행하고 모든 신호
또는 GNU Screen은 화면 세션을 시작하고 해당 세션의 모든 창(가상 터미널)을 열 수 있는 터미널 다중 복용기 프로그램입니다.연결을 끊더라도 화면에서 실행되는 프로세스는 창이 보이지 않을 때 계속 실행됩니다.
GNU 스크린의 현대적인 대안입니다.Tmux를 사용하면 세션을 만들고 여러 창을 열 수 있습니다.Tmux 세션은 오래 지속됩니다. 이것은 터미널을 닫아도 Tmux에서 실행되는 프로그램이 계속 실행된다는 것을 의미합니다.
백그라운드에서 Linux 명령 실행
명령을 백그라운드에서 실행하려면 명령 끝에 기호&
를 추가합니다. command &
케이스 작업 ID (괄호로 묶음) 와 프로세스 ID는 터미널에 인쇄됩니다. [1] 25177
백그라운드에서 여러 프로세스를 동시에 실행할 수 있습니다.백그라운드 프로세스는 명령을 호출하는 터미널에 메시지를 계속 기록합니다.stdout
및 stderr
메시지를 억제하려면 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
TmuxGNU 스크린의 현대적인 대안입니다.Tmux를 사용하면 세션을 만들고 여러 창을 열 수 있습니다.Tmux 세션은 오래 지속됩니다. 이것은 터미널을 닫아도 Tmux에서 실행되는 프로그램이 계속 실행된다는 것을 의미합니다.
결론
백그라운드에서 명령을 실행하려면 명령 끝에SIGHUP
를 포함합니다.백그라운드에서 명령을 실행할 때 명령이 끝난 후에 다른 명령을 실행할 필요가 없다.질문이나 피드백이 있으면 언제든지 의견을 발표하십시오.