2017-03-06 14 views
0

私は主なコマンドを実行するbashスクリプトを持っています.1時間と言いましょう。私は、メインコマンドが開始されてから(t_xで)一定時間後に別のコマンドを実行したいと思います。このようなもの:別のコマンドが実行されている間に一定時間後にコマンドを実行するにはどうすればよいですか?

メイン開始------->メインエンド | |

mpirun main_command & sleep 1m && second_command 

し、問題が2番目のコマンドが実行された後、メインコマンドが殺されていることである:時間t_x、2番目のコマンドで が、私はこのような何かを持っている現時点で

を実行します。誰でも助けてくれますか?ありがとう!

+0

次のようなことを試すことができます: '(sleep 80&); ls;スリープ5; ps '。 "sleep"、 "ls"、 "ps"の代わりに、他のコマンドを使うことができます。 – linuxfan

+1

少なくとも、実際の問題は何かわかりません。 –

+0

@MarkSetchell:メインコマンドの出力に欠陥があります(メインコマンドが終了したとき)。メインコマンドが終了する前にその出力のコピーを作成したいと思います。私はコピーを作るべき時を知っています。それを手動で行う代わりに、私はそれを噴霧したいと思います。睡眠の問題は、実際に終了する前にメインコマンドを殺すことです。 –

答えて

0

最初のコマンドは、別のプロセスもそれを使用しているので、コンソールをロックするのに失敗しています。標準のioパイプラインをリダイレクトする必要があります。0<&- mpirun main_command >/dev/null 2>/dev/nullこれでも動作しない場合は、shell -c 'mpirun main_command' & sleep 1m;second_commandを使用してください。&&の代わりに;を使用できます。

関連する問題