터미널에서 명령을 실행하고 몇 분, 때로는 몇 시간 동안 실행하고 다시 터미널을 사용할 수 없게 하는 것보다 더 짜증나는 일은 없습니다. 물론, 탭을 사용할 수 있지만 이는 투박한 솔루션이며 작업하면서 업데이트를 보고 싶을 수 있기 때문에 항상 최적은 아닙니다. 여기에서는 Linux의 백그라운드에서 bash 명령을 실행하는 몇 가지 다른 방법을 보여줍니다.
&로 명령 종료
&
를 사용하여 명령을 백그라운드로 푸시하려면 결국에는 그렇게 하는 쉬운 방법입니다. 이런 식으로 백그라운드에서 명령을 실행하고 터미널이 실행되는 동안 계속 사용할 수 있습니다. 그러나 그것은 캐치와 함께 제공됩니다. &
사용 당신에게서 명령을 끊지 않습니다. 그것은 단지 그것을 배경으로 밀어 넣습니다. 이것은 터미널을 사용하려고 하는 동안 명령이 STDOUT
에 푸시하려는 모든 것을 의미합니다. 또는 STDERR
계속 인쇄되므로 주의가 산만해질 수 있습니다.
COMMAND &
터미널 세션이 닫히면 명령이 종료됩니다. jobs
를 실행하여 명령을 종료할 수도 있습니다. 명령, 실행 중인 명령의 번호를 찾고 kill
로 종료 명령. 해당 구문은 다음과 같습니다.
kill %1
&
사용 잠시 미루어야 하지만 영원히 계속될 거라고 기대하지 않는 경우에 좋습니다.
명령 후 및 거부
&
만으로 명령 실행 뒤쪽으로 밀어내고 터미널 창이 열려 있는 한 계속 실행됩니다. 그러나 터미널 세션이 종료된 후에도 이 명령을 계속 실행하려면 disown
을 사용할 수 있습니다. 명령.
이 방법을 사용하려면 먼저 &
를 추가하세요. .
COMMAND &
위에서 언급했듯이 &
를 사용하여 이 명령을 백그라운드로 푸시하지만 사용자로부터 분리하지는 않습니다. jobs
를 입력하여 이를 확인할 수 있습니다. 터미널에. 이전에 본 것처럼 백그라운드에서 실행되는 명령이 표시됩니다.
disown
을 입력하기만 하면 됩니다. 셸에 넣으면 바로 수행됩니다. (그리고 jobs
로 다시 한 번 확인할 수 있습니다. 명령.)
이제 터미널을 닫고 하루 일과를 계속할 수 있습니다. 계속해서 STDOUT
에 연결됩니다. 또는 STDERR
하지만 터미널을 종료하고 다시 열면 아무 것도 표시되지 않습니다. top
명령을 다시 찾을 수 있습니다. 또는 ps
명령을 실행하고 kill
로 종료합니다. 명령.
/dev/null을 사용한 명령 뒤
&
추가 명령 후에는 명령을 백그라운드로 푸시하지만 결과적으로 백그라운드 명령은 사용하는 동안 계속해서 터미널에 메시지를 인쇄합니다. 이를 방지하려면 명령을 /dev/null
로 리디렉션하는 것이 좋습니다. .
COMMAND &>/dev/null &
이것은 터미널이 닫힐 때 명령이 닫히는 것을 방지하지 않습니다. 그러나 위에서 언급했듯이 disown
을 사용할 수 있습니다. 실행 중인 명령을 사용자로부터 거부합니다. 더 이상 실행하지 않으려면 위에서 언급한 방법 중 하나로 종료할 수도 있습니다.
Nohup, &및 /dev/null 포함
이전 명령과 달리 nohup
사용 백그라운드에서 명령을 실행하고 계속 실행할 수 있습니다. 어떻게? nohup
HUP 신호(signal hang up)를 우회하여 터미널이 꺼져 있는 경우에도 백그라운드에서 명령을 실행할 수 있습니다. 이 명령을 "/dev/null"로 리디렉션(nohup이 nohup.out 파일을 만드는 것을 방지하기 위해)과 결합하면 모든 것이 하나의 명령으로 백그라운드로 이동합니다.
nohup COMMAND &>/dev/null &
오늘날 Linux의 대부분의 터미널 프로그램에는 적은 노력으로 백그라운드에서 실행할 수 있는 기능이 내장되어 있습니다. 이와 함께 최신 초기화 시스템(예:systemd)을 통해 사용자는 부팅 시 또는 언제든지 서비스와 같은 프로그램을 시작할 수 있습니다.
그러나 Linux의 일부 프로그램은 데몬으로 실행하거나 최신 init 시스템과 통합하는 기능이 부족합니다. 모든 개발자가 새로운 기능을 추가할 수 있는 기술이나 시간이 있는 것은 아니기 때문에 이는 정말 불편한 일이지만 이해할 만합니다.
운 좋게도 nohup
와 같은 명령은 또는 disown
여전히 현실이며 이와 같은 프로그램을 백그라운드로 이동하는 격차를 좁힐 수 있습니다. 그들은 완벽하거나 화려하지 않지만 필요할 때 작업을 수행합니다.
이 Linux 기사가 마음에 들었다면 Google 계정을 GNOME Shell에 연결하는 방법, Windows 사용자를 위한 최고의 Linux 배포판, 알아야 할 LS 명령과 같은 다른 Linux 콘텐츠를 확인하십시오.