![sh에서 백그라운드 프로세스를 시작하고 터미널을 닫습니다.](https://linux55.com/image/106167/sh%EC%97%90%EC%84%9C%20%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B3%A0%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84%20%EB%8B%AB%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
sh(bash 아님!)에서 이를 어떻게 달성할 수 있나요?
nohup sh -c 'helper-bcpy.sh "$0" "$1" "$2" "$3"' "$num" "$full_path" "$log" "$log_finished" >/dev/null &
백그라운드에서 프로세스를 보내고(그렇습니다) 터미널에서 분리하면 좋았을 것입니다(그렇지 않습니다. 스크립트를 시작한 곳에서 터미널을 닫으면 helper-bcpy.sh
완전히 실행되지 않습니다. wget에 시간이 많이 걸리는 것 같지만 호출이 올바르게 실행되었습니다...).
을 사용할 수 있다는 것을 알고 있지만 disown
bash 대신 sh에서 수행해야 합니다...
#!/bin/sh
# $num $full_path $log $log_finished - computed before from parameters received by the script
nvram set led_disable=1
service restart_leds >/dev/null
nohup sh -c 'helper-bcpy.sh "$0" "$1" "$2" "$3"' "$num" "$full_path" "$log" "$log_finished" >/dev/null &
echo "copy process launched..."
exit 0
helper-bcpy.sh
다음과 같습니다.
#!/bin/sh
wget -m -np -nH -nv --cut-dirs="$1" "$2" 1>/dev/null 2>"$3"
nvram set led_disable=0
service restart_leds
mv "$3" "$4"
exit 0
Merlin 펌웨어를 사용하여 Asus 라우터에서 이 작업을 수행해야 합니다.