Computer >> 컴퓨터 >  >> 체계 >> Linux

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

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

터미널에서 명령을 실행하고 몇 분, 때로는 몇 시간 동안 실행하고 다시 터미널을 사용할 수 없게 하는 것보다 더 짜증나는 일은 없습니다. 물론, 탭을 사용할 수 있지만 이는 투박한 솔루션이며 작업하면서 업데이트를 보고 싶을 수 있기 때문에 항상 최적은 아닙니다. 여기에서는 Linux의 백그라운드에서 bash 명령을 실행하는 몇 가지 다른 방법을 보여줍니다.

&로 명령 종료

&를 사용하여 명령을 백그라운드로 푸시하려면 결국에는 그렇게 하는 쉬운 방법입니다. 이런 식으로 백그라운드에서 명령을 실행하고 터미널이 실행되는 동안 계속 사용할 수 있습니다. 그러나 그것은 캐치와 함께 제공됩니다. & 사용 당신에게서 명령을 끊지 않습니다. 그것은 단지 그것을 배경으로 밀어 넣습니다. 이것은 터미널을 사용하려고 하는 동안 명령이 STDOUT에 푸시하려는 모든 것을 의미합니다. 또는 STDERR 계속 인쇄되므로 주의가 산만해질 수 있습니다.

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

터미널 세션이 닫히면 명령이 종료됩니다. jobs를 실행하여 명령을 종료할 수도 있습니다. 명령, 실행 중인 명령의 번호를 찾고 kill로 종료 명령. 해당 구문은 다음과 같습니다.

Linux의 백그라운드에서 Bash 명령을 실행하는 방법
kill %1

& 사용 잠시 미루어야 하지만 영원히 계속될 거라고 기대하지 않는 경우에 좋습니다.

명령 후 및 거부

&만으로 명령 실행 뒤쪽으로 밀어내고 터미널 창이 열려 있는 한 계속 실행됩니다. 그러나 터미널 세션이 종료된 후에도 이 명령을 계속 실행하려면 disown을 사용할 수 있습니다. 명령.

이 방법을 사용하려면 먼저 &를 추가하세요. .

COMMAND &

위에서 언급했듯이 &를 사용하여 이 명령을 백그라운드로 푸시하지만 사용자로부터 분리하지는 않습니다. jobs를 입력하여 이를 확인할 수 있습니다. 터미널에. 이전에 본 것처럼 백그라운드에서 실행되는 명령이 표시됩니다.

disown을 입력하기만 하면 됩니다. 셸에 넣으면 바로 수행됩니다. (그리고 jobs로 다시 한 번 확인할 수 있습니다. 명령.)

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

이제 터미널을 닫고 하루 일과를 계속할 수 있습니다. 계속해서 STDOUT에 연결됩니다. 또는 STDERR 하지만 터미널을 종료하고 다시 열면 아무 것도 표시되지 않습니다. top 명령을 다시 찾을 수 있습니다. 또는 ps 명령을 실행하고 kill로 종료합니다. 명령.

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

/dev/null을 사용한 명령 뒤

& 추가 명령 후에는 명령을 백그라운드로 푸시하지만 결과적으로 백그라운드 명령은 사용하는 동안 계속해서 터미널에 메시지를 인쇄합니다. 이를 방지하려면 명령을 /dev/null로 리디렉션하는 것이 좋습니다. .

Linux의 백그라운드에서 Bash 명령을 실행하는 방법
COMMAND &>/dev/null &

이것은 터미널이 닫힐 때 명령이 닫히는 것을 방지하지 않습니다. 그러나 위에서 언급했듯이 disown을 사용할 수 있습니다. 실행 중인 명령을 사용자로부터 거부합니다. 더 이상 실행하지 않으려면 위에서 언급한 방법 중 하나로 종료할 수도 있습니다.

Nohup, &및 /dev/null 포함

이전 명령과 달리 nohup 사용 백그라운드에서 명령을 실행하고 계속 실행할 수 있습니다. 어떻게? nohup HUP 신호(signal hang up)를 우회하여 터미널이 꺼져 있는 경우에도 백그라운드에서 명령을 실행할 수 있습니다. 이 명령을 "/dev/null"로 리디렉션(nohup이 nohup.out 파일을 만드는 것을 방지하기 위해)과 결합하면 모든 것이 하나의 명령으로 백그라운드로 이동합니다.

nohup COMMAND &>/dev/null &
Linux의 백그라운드에서 Bash 명령을 실행하는 방법

오늘날 Linux의 대부분의 터미널 프로그램에는 적은 노력으로 백그라운드에서 실행할 수 있는 기능이 내장되어 있습니다. 이와 함께 최신 초기화 시스템(예:systemd)을 통해 사용자는 부팅 시 또는 언제든지 서비스와 같은 프로그램을 시작할 수 있습니다.

그러나 Linux의 일부 프로그램은 데몬으로 실행하거나 최신 init 시스템과 통합하는 기능이 부족합니다. 모든 개발자가 새로운 기능을 추가할 수 있는 기술이나 시간이 있는 것은 아니기 때문에 이는 정말 불편한 일이지만 이해할 만합니다.

운 좋게도 nohup와 같은 명령은 또는 disown 여전히 현실이며 이와 같은 프로그램을 백그라운드로 이동하는 격차를 좁힐 수 있습니다. 그들은 완벽하거나 화려하지 않지만 필요할 때 작업을 수행합니다.

이 Linux 기사가 마음에 들었다면 Google 계정을 GNOME Shell에 연결하는 방법, Windows 사용자를 위한 최고의 Linux 배포판, 알아야 할 LS 명령과 같은 다른 Linux 콘텐츠를 확인하십시오.