分号分隔两个不同的进程(将其视为可见的换行符)。
当您运行 时daemon -20 $exec -a -b $var &
,您正在运行一个命令,daemon
该命令(除其他外)将存储在变量中的参数exec
作为程序作为守护程序运行。
[如果我猜对了,你想使用taskset
命令启动两个守护进程。我想你想要的是
taskset -c 0,1 daemon -20 taskset -c 0,1 $exec -a -b $var
更新:我猜错了!无论如何,这似乎有一个可怕的重复错误,任务集被调用了两次。]
有几种可能:
daemon taskset -c 0,1 $exec -a -b $var
,看起来不错,但我怀疑是错误的,因为它可能会taskset
生成一个守护进程,而不是$exec
.
taskset -c 0,1 daemon $exec -a -b $var
,这只是我之前回答的稍微更正的形式,额外调用了taskset
删除。我怀疑这会创建两个你不想要的守护进程。
像最初使用daemon -20 $exec -a -b $var &
. 接下来,找到$exec
它正在运行的进程 ID。最后,运行taskset -c 0,1 -p $PID
,其中PID
的进程 ID 是$exec
.
我认为您需要使用#3 的原因是每个都将命令作为参数并运行该命令daemon
。taskset
任何一方都不能(轻松地)按照您的建议对另一方在一行中启动的命令采取行动。
你的尝试,
daemon -20 ; taskset -c 0,1 $exec -a -b $var &
daemon
仅使用单个参数 ( ) 进行调用,该参数-20
可能会或可能不会做任何事情(我不熟悉该daemon
命令)。完成后,它调用taskset
命令$exec
在两个处理器上运行名为 in 的可执行文件。