Bashシェルからプログラムを実行したいのですが。プログラムが実行されると、それがシェル全体を支配するので、新しいシェルを起動して、そこからプログラムを実行したいと思います。現在私はやっています:
gnome-terminal -x "cd Dropbox; program_name"
しかし、それは私に子プロセスを実行できませんでしたというエラーを与えます、そのようなファイルやディレクトリはありません。新しい端末には初期化する時間がないためだと思います。どうすれば修正できますか?
これはあなたの質問に実際に答えることはできませんが、私はそれがあなたの問題を解決すると思います。
なぜ&
をバックグラウンドに送信します。 jobs
で実行されているかどうかを確認し、fg
でフォアグラウンドに戻すことができます。最初にCtrl+Z次にbg
試す例。
> sleep 20 &
> jobs
> fg [jobNumber]
[Ctrl-Z]
> jobs
> bg [jobNumber]
> jobs
試してください:
bash -c 'gnome-terminal -x cd /absolute-path && program_name'
gnome-terminalを呼び出す前に、プログラムへの絶対パスまたはcdを使用してください。そして、あなたはそれをバックグラウンドに置くために&が必要です。
cd Dropbox; gnome-terminal -x "program_name" &
screen を試してください。あなたが同時に複数のシェルを追跡することを可能にするそのシンプルなブログラム。開いている各シェルをナビゲートし、セッションを終了して後で再接続することもできます。
コマンドの最後に「&」を追加してみてください。例:
gnome-terminal &
Gnome-terminalで動作するかどうかはわかりませんが、mrxvtで問題なく動作しました。
/bin/bash -c "/path/to/prog"
ただし、sleep
コマンドも調べてください。