disown
쉘이 종료 될 때 쉘이 권한이없는 작업으로 SIGHUP을 보내지 않도록합니다.
쉘의 작업 제어에서 사용하지 않는 작업을 제거합니다.
첫 번째는 두 번째의 결과입니까? 다시 말해, 쉘에서 시작된 프로세스가 쉘의 작업 제어에서 제거되면 쉘이 종료 될 때 쉘이 프로세스에 SIGHUP을 보내지 않습니까?
disown -h
여전히 쉘의 작업 제어하에 프로세스를 유지합니다. disown -h
프로세스가 여전히 쉘에서 보낸 SIGHUP을 수신하지만 프로세스가 "무시"하도록 SIGHUP의 조치를 설정 한다는 의미 입니까? 비슷합니다 nohup
.
$ sleep 123 & disown -h
[1] 26103
$ jobs
[1]+ Running sleep 123 &
$ fg 1
sleep 123
$ ^Z
[1]+ Stopped sleep 125
$ bg 1
[1]+ sleep 123 &
$ exit
$ ps aux | grep sleep
t 26103 0.0 0.0 14584 824 ? S 15:19 0:00 sleep 123
수행 disown -h
과 nohup
우리가 터미널을 사용하여 자신의 차이를 무시하는 경우 효과적으로 같은 일?
감사.
nohup
stdin / stdout / stderr을 TTY (원래 쉘이 하나에 연결되어 있어야 함)에서 직접 리디렉션해야한다는 것입니다. (OTOH, 실제로는 하드 코딩 된 기본값과 같은 것보다 더 나은 방법을 고려합니다./nohup.out
).