"nohup"은 언제 사용해야하며 "&"는 언제 사용해야합니까?


16

nohup을 사용하기에 가장 좋은 시간과 명령 끝에 &를 사용하는시기를 결코 알 수 없습니다.

답변:


20

Nohup은 프로그램이 HUP 신호를 무시하도록하여 현재 터미널이 닫히거나 사용자가 로그 아웃 한 후에 실행될 수 있도록합니다. Nohup은 백그라운드로 프로그램을 보내지 않습니다.
&는 명령 끝에서 쉘 작업 제어와 관련되어 있으므로 사용자는 현재 쉘 세션에서 작업을 계속할 수 있습니다.
일반적으로 nohup 및 &는 사용자 로그 아웃 후 실행되고 현재 쉘 세션에서 작업을 계속할 수있는 프로그램을 시작하기 위해 결합됩니다.


13

일반적으로 &백그라운드에서 실행하는 데 오래 걸리지 않는 명령 또는 예기치 않게 세션에서 로그 아웃 된 경우 프로그램이 종료되는지 신경 쓰지 않는 명령을 실행하려고 할 때 사용 합니다.

xcalc &
rdesktop 1.2.3.4 & 
./this_only_takes_a_few_seconds_but_i_want_my_shell_back.py &

VPN 또는 복잡한 원격 연결을 통해 작업 할 때 nohup실행하는 데 시간이 걸리는 모든 항목을 실행 하는 경향이 있습니다 . 예를 들어, 원격 호스트에서 대용량 데이터 가져 오기를 실행할 때 nohup연결이 끊어지면 다시 연결할 때 다시 시작하지 않도록하는 것이 좋습니다.

nohup ./do_data_load.py mydatafile.txt &

개발자가 서비스를 제대로 데몬하지 않을 때에도 사용되므로 nohup로그 아웃 할 때 서비스가 종료되지 않도록해야합니다.

nohup sillyd &

nohup마지막 두 예제와 같은 것을 실행할 때 사용을 잊어 버린 경우 bash 또는 zsh 내장 기능 disown을 동일한 효과로 사용할 수 있습니다 .

$ sillyd &
[1] 12345            # Whoops!
$ disown %1

로그 아웃하면 nohup'd 세션에 실제로 다시 연결할 수 없으므로을 사용 nohup하지 않고 사용하는 것은 매우 드 rare니다 &. 이것은 대화식 명령에 대한 유용성을 거의 제거합니다. 대화식 명령이있는 경우 세션 동안 지속 시키거나 복잡한 연결 끊기를 피하려면을 사용할 수 있습니다 screen. 완전 무장 및 운영 screen세션 의 화력은 이 게시물의 범위를 벗어나므로 자세히 확인 해야합니다 .


화면보다 tmux를 구성하고 사용하는 것이 더 쉽다는 것을 알았습니다. 또한 BSD는 라이센스를 받았습니다.
Kristaps

1
byobu화면에 멋진 기능을 추가 하는 을 사용할 수도 있습니다 . 대부분의 적절한 저장소와 Red Hat의 EPEL 저장소에서 사용할 수 있습니다.
제임스

0

nohup : 현재 사용자 로그 아웃, 프로세스가 중지되지 않습니다

& :이 기호를 사용하면 현재 터미널에서 프로세스가 실행되고 백그라운드에서 프로세스가 실행되지 않습니다.


4
& 표준 출력 및 오류 스트림을 제거하지 않기 때문에 여전히 출력됩니다. bash에서 다음과 같은 스트림 리디렉션을 사용해야합니다.> / dev / null 2> 1
Kristaps
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.