Questions tagged «background-process»

“后台”进程是在“幕后”(即在后台)运行且无需用户干预的计算机进程。使用此类过程的典型任务包括日志记录,系统监视,调度和用户通知。对于有关后台进程的任何问题,请使用此标签。




8
调用多个bash脚本并并行运行,而不是依次运行
假设我有三个(或更多)的bash脚本:script1.sh,script2.sh,和script3.sh。我想调用所有这三个脚本并并行运行它们。一种方法是仅执行以下命令: nohup bash script1.sh & nohup bash script2.sh & nohup bash script3.sh & (通常,脚本可能需要几个小时或几天才能完成,所以我想使用nohup它们,以便即使我的控制台关闭也可以继续运行。) 但是,有什么方法可以通过一次调用并行执行这三个命令? 我在想类似 nohup bash script{1..3}.sh & 但这似乎是按顺序执行script1.sh,script2.sh而script3.sh不是并行执行。


7
SSH会话终止后,为什么我的Python后台进程结束?
我有一个bash脚本,它启动python3脚本(我们称之为startup.sh),其关键是: nohup python3 -u <script> & 当我ssh直接进入并调用此脚本时,退出后,python脚本将继续在后台运行。但是,当我运行此命令时: ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "./startup.sh" 该过程一旦ssh完成运行就结束,并关闭会话。 两者有什么区别? 编辑:python脚本正在通过Bottle运行Web服务。 EDIT2:我还尝试创建一个初始化脚本,该脚本调用startup.sh并运行ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "sudo service start <servicename>",但行为相同。 EDIT3:也许是脚本中的其他内容。这是大部分脚本: chmod 700 ${key_loc} echo "INFO: Syncing files." rsync -azP -e "ssh -i ${key_loc} -o StrictHostKeyChecking=no" ${source_client_loc} ${remote_user}@${remote_hostname}:${destination_client_loc} echo "INFO: Running startup script." …

2
杀死一个暂停的进程?
我对以下内容感到有些困惑: % vim tmp zsh: suspended vim tmp % kill %1 % jobs [1] + suspended vim tmp % kill -SIGINT %1 % jobs [1] + suspended vim tmp % kill -INT %1 % jobs [1] + suspended vim tmp 因此,我辞职只是“自己动手做”,想知道以后为什么这样做: % fg [1] - continued vim tmp Vim: Caught …

3
在Linux中等待命令使用?
#!/bin/bash function back() { sleep $1 exit $2 } back $1 $2 & b=$! if `wait $!`;then echo success else echo failure fi bash-3.00# ./back 300 0 failure bash-3.00# ./back 300 1 failure success当我发送0时,我原以为退出状态,但是我仍在failure。 另外,wait请勿等待300秒。相反,我立即收到消息。我认为这$!是$$我脚本中的直接子代。是不是 是否可以捕获wait like的退出状态exit_status=$(wait $!)? if ! ((exit_status));then echo sucess else failure fi

1
从脚本启动后台进程,并在脚本结束时进行管理
我想要类似于脚本中的守护程序来运行和配置进程。 我的Shell是在Cygwin下模拟的zsh,守护进程是基本的FTP服务器SFK。 对于这里重要的事情,脚本startserv.sh可以按如下方式草拟: #!/bin/sh read -s -p "Enter Password: " pw user=testuser share=/fshare cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share" $cmd & 运行脚本后startserv.sh,它停止(结束?)而不显示任何提示,然后: CTRL+ C结束脚本和后台作业过程; 点击Enter脚本将结束该过程,并保留在后台。 无论如何,我只能通过ps而看不到它jobs,因此,当我想关闭该过程时,我必须发送一个残酷的kill -9信号,我希望避免使用 CTRL+ C。 另一种方法 是在后台运行整个脚本。“将”,但是read如果脚本以方式运行,则该命令将无法获取用户输入startserv.sh &。 请注意,我需要一个临时服务器,而不是真正的守护程序:也就是说,我希望服务器进程在脚本结束后在后台运行,以执行简单的交互式Shell任务(使用虚拟机来宾),但是我不希望这样做。不需要生存过程的壳;因此nohup似乎不合适。

2
如何后台执行命令链?
我想像这样的命令链作为背景cp a b && mv b c && rm a。 我尝试做,cp a b && mv b c && rm a &但这仅是最后一个过程的背景。 如何为命令链设置背景?

4
Ctrl-C与bash中的两个同时命令
我想在Linux机器上的bash中同时运行两个命令。因此,在我的./execute.shbash脚本中,我输入: command 1 & command 2 echo "done" 但是,当我想停止bash脚本并按Ctrl+时C,仅第二个命令停止。第一个命令保持运行。如何确保完整的bash脚本已停止?或者在任何情况下,如何停止两个命令?因为在这种情况下,无论我多按一次Ctrl+ C,命令都会继续运行,并且我不得不关闭终端。

1
后台进程管道输入
如果我想在屏幕上显示“ aaa”: (1)$: echo aaa | cat ... works OK (2)$: echo aaa | ( cat ) ... works OK (3)$: echo aaa | ( cat & ) ... NOT working (4)$: ( echo aaa & ) | cat ... works OK (5)$: echo aaa | ( cat <&0 & …

1
在后台运行多个bash函数并等待它们返回
这是一个简单的脚本,可以nvidia-smi在多个主机上运行命令,并将其输出保存到公共文件中。这里的目标是使其异步运行。 &在process_host()函数结尾是否足够?我的脚本正确吗? #!/bin/bash HOSTS=(host1 host2 host3) OUTPUT_FILE=nvidia_smi.txt rm $OUTPUT_FILE process_host() { host=$1 echo "Processing" $host output=`ssh ${host} nvidia-smi` echo ${host} >> $OUTPUT_FILE echo "$output" >> $OUTPUT_FILE } for host in ${HOSTS[@]}; do process_host ${host} & done; wait cat $OUTPUT_FILE

4
在后台多次运行同一命令
如何运行多个命令并使用bash后台运行它们? 例如: $ for i in {1..10}; do wait file$i &; done 其中wait是自定义二进制文件。 现在我得到一个错误: syntax error near unexpected token `;' 运行上面的命令时。 后台运行后,命令应并行运行。

4
给定两个后台命令,当其中一个退出时,终止其余命令
我有一个启动两个服务器的简单bash脚本: #!/bin/bash (cd ./frontend && gulp serve) & (cd ./backend && gulp serve --verbose) 如果第二个命令退出,则似乎第一个命令继续运行。 我如何更改此设置,以便如果其中一个命令退出,另一个命令终止? 注意,我们不需要检查后台进程的错误级别,只需检查它们是否已经退出即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.