linux下如何实现在两条命令 轮流执行

如题所述

在Linux环境下实现两条命令轮流执行,可以使用bash脚本完成。这里给出一个简单的例子,包含了退出条件:

#!/bin/bash

command1 & pid1=`ps -ef | grep command1 | grep -v grep | awk '{print $2}'`

job1=`jobs | grep command1 | awk -F\[ '{print $2}' | sed 's/]+//g;s/,//g' | awk '{print $1}'`

kill -STOP $pid1

command2 & pid2=`ps -ef | grep command2 | grep -v grep | awk '{print $2}'`

job2=`jobs | grep command2 | awk -F\[ '{print $2}' | sed 's/]+//g;s/,//g' | awk '{print $1}'`

kill -STOP $pid2

while true do

bg $job1

sleep 60

kill -STOP $pid1

bg $job2

sleep 60

kill -STOP $pid2

done

上述脚本中,通过`command1 &`和`command2 &`启动两条命令,并使用`pid1`和`pid2`记录它们的进程ID。然后,使用`kill -STOP`命令暂停这两个进程。接下来,使用`bg`命令将暂停的进程置于后台执行,并使用`sleep 60`暂停60秒。最后,再次使用`kill -STOP`命令暂停这两个进程,循环此过程。

值得注意的是,这个脚本没有包含退出条件。在实际应用中,可以根据具体需求添加相应的退出条件,例如通过检测某些文件或变量的变化来判断是否需要退出循环。

此外,这个脚本假设`command1`和`command2`是有效的命令,且可以在当前shell会话中运行。如果需要在不同的shell会话中运行这两个命令,可以考虑使用`nohup`命令或创建一个新的shell会话。

在使用此脚本时,请确保充分了解其中涉及的进程管理和信号处理机制,以避免不必要的资源消耗或系统不稳定。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜