sh에서 백그라운드 프로세스를 시작하고 터미널을 닫습니다.

sh에서 백그라운드 프로세스를 시작하고 터미널을 닫습니다.

sh(bash 아님!)에서 이를 어떻게 달성할 수 있나요?

nohup sh -c 'helper-bcpy.sh "$0" "$1" "$2" "$3"' "$num" "$full_path" "$log" "$log_finished" >/dev/null &

백그라운드에서 프로세스를 보내고(그렇습니다) 터미널에서 분리하면 좋았을 것입니다(그렇지 않습니다. 스크립트를 시작한 곳에서 터미널을 닫으면 helper-bcpy.sh완전히 실행되지 않습니다. wget에 시간이 많이 걸리는 것 같지만 호출이 올바르게 실행되었습니다...).

을 사용할 수 있다는 것을 알고 있지만 disownbash 대신 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 라우터에서 이 작업을 수행해야 합니다.

관련 정보