セミコロンは 2 つの異なるプロセスを区切ります (目に見える改行と考えてください)。
を実行するdaemon -20 $exec -a -b $var &
と、単一のコマンド が実行されます。このコマンドは、デーモンとして実行するプログラムとしてdaemon
変数に格納された引数を (とりわけ) 受け取ります。exec
[私の推測が正しければ、このtaskset
コマンドを使用して 2 つのデーモンを開始する必要があります。あなたが望むのは
taskset -c 0,1 daemon -20 taskset -c 0,1 $exec -a -b $var
更新:私は間違っていたと思いました!とにかく、これにはひどい重複エラーがあり、タスクセットが2回呼び出されているようです。]
いくつかの可能性があります:
daemon taskset -c 0,1 $exec -a -b $var
、これは良さそうに見えますが、おそらくtaskset
デーモンではなくデーモンを作成するため、間違っていると思われます$exec
。
taskset -c 0,1 daemon $exec -a -b $var
、これは私の以前の回答のわずかに修正された形式であり、余分な呼び出しがtaskset
削除されています。これにより、不要な 2 つのデーモンが作成されると思われます。
最初に で行ったように、デーモンを開始しますdaemon -20 $exec -a -b $var &
。次に、$exec
現在実行中のプロセス ID を見つけます。最後に、 を実行taskset -c 0,1 -p $PID
します。PID
は のプロセス ID です$exec
。
#3を使用する必要があると思う理由はdaemon
、taskset
それぞれがコマンドを引数として取り、そのコマンドを実行するからです。あなたが提案したように、どちらも(簡単に)他の人が開始したコマンドを1行で実行することはできません。
あなたの試み、
daemon -20 ; taskset -c 0,1 $exec -a -b $var &
daemon
何もしないかもしれないし、何もしないかもしれない単一の引数 ( ) だけで呼び出します-20
(私はdaemon
コマンドに慣れていません)。完了すると、コマンドを呼び出して、taskset
in という名前の実行可能ファイル$exec
を 2 つのプロセッサで実行します。