我正在开发一个简单的截屏间谍软件,该间谍软件从脚本开始每隔5秒就会截屏一次。我希望它在关闭终端时运行。即使在将脚本与'&'一起nohup后,我的脚本也会在关闭终端时退出。
screenshotScriptWOSleep.sh
#!/bin/bash
echo "Starting Screenshot Capture Script."
echo "Process ID: $$"
directory=$(date "+%Y-%m-%d-%H:%M")
mkdir ${directory}
cd ${directory}
shotName=$(date "+%s")
while true
do
if [ $( date "+%Y-%m-%d-%H:%M" ) != ${directory} ]
then
directory=$(date "
+%Y-%m-%d-%H:%M")
cd ..
mkdir ${directory}
cd ${directory}
fi
if [ $(( ${shotName} + 5 )) -eq $(date "+%s" ) ]
then
shotName=$(date "+%s" )
screencapture -x $(date "+%Y-%m-%d-%H:%M:%S" )
fi
done
我运行脚本时, nohup ./screenshotScriptWOSleep.sh&
在关闭终端窗口时,它会发出警告, “关闭此标签将终止正在运行的进程:bash,日期。”
我已经读到 nohup 也适用于子进程,但是我被困在这里。谢谢。
答案 0 :(得分:0)
您正在做的事情确实很奇怪,或者是在指其他过程。
nohup bash -c 'sleep 500' &
关闭该终端;打开另一个:
ps aux | grep sleep
409370294 26120 1 0 2:43AM ?? 0:00.01 sleep 500
409370294 26330 26191 0 2:45AM ttys005 0:00.00 grep -i sleep
如您所见,睡眠仍在继续。
答案 1 :(得分:0)
只需忽略该警告,您的过程就不会终止。用
验证 watch wc -l nohup.out