如何使用shell脚本运行一个进程两次

How to Run one Process Twice with shell script?

本文关键字:一个 进程 两次 shell 何使用 脚本 运行      更新时间:2023-10-16

如果我有一个可执行文件,用shell脚本运行它两次的正确方法是什么?
要执行两次的进程正在使用共享内存进行消息传递和共享信号量
使用

./a
./a

将运行一个进程,而其他进程在第一个进程停止之前不能运行,因此两个进程之间没有通信
以并行方式运行一个可执行文件两次的正确方法是什么?

正如@SamVarshavchik所说,使用&符号在后台运行一个进程,这样另一个进程可以并发运行:

./a &
./a

./a & ./a

如果正如您的注释所暗示的那样,由于第一个进程是交互式的,所以第二个进程需要在后台,您可以这样做:

{ sleep 10; ./second; } &
./first

或者,您可以使用自己的终端启动每个进程:

xterm -e "./first" &
xterm -e "./second" &

首先,与其bash黑客,不如重写你的应用程序并使其在启动时为fork()。但是一般来说,如果你想把第一个进程带到前台,你可以使用fg命令:

./a &
./a &
fg 1