我们运行一个交互式perl脚本,该脚本从终端获取一组输入(输入是脚本应该运行的时间)并运行直到完成。工作在前台运行。我通过点击CTRL-Z
后跟bg %-
命令让工作在后台运行。
一旦当前作业在后台运行,如果我使用不同的输入集运行相同的perl脚本并尝试将其放入后台,当我按下CTRL-Z
时,第一个作业将被终止。
^ Z [1]终止的脚本名称
[2] +停止的脚本名称
请指出我是否犯了错误
答案 0 :(得分:0)
当您按^ Z时,正在运行的脚本停止,在bg之后它将继续(在后台)
当您在命令行上执行某些操作时,您将获得bg作业的反馈
使用[1] Terminated scriptname
,您会看到第一个脚本已完成。使用[2]+ Stopped scriptname
,您会看到第二个作业暂停并等待bg / fg命令
使用^ Z + bg与将&
附加到命令(对于非交互式程序)大致相同。您可以尝试使用
sleep 1 &
# now wait few seconds
ps
# you will see the terminated script
sleep 6 &
sleep 3; ps
sleep 4; ps
# and now repeat these cases with ^Z / bg instead of &
答案 1 :(得分:0)
尝试nohup
nohup nice <your_script followed by parameters(separated by space)> &
它会给你process_id。按Ctrl + C退出命令并通过ps -ef验证它是否仍在运行。我记得用这样的不同参数运行同一个脚本的多个实例。