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 라우터에서 이 작업을 수행해야 합니다.