2017-08-24 26 views
2

私はUbuntuでGUIアプリケーション(リズムボックス)を起動しようとしています。以下では、実行ファイルの連鎖について説明します。BashスクリプトからBashスクリプトを起動してGUIアプリケーションを起動する

# Window manager executes first 
~/i3wm_cmd_wrapper.sh Window_Name ~/mount_enc.sh 

このラッパーは、gnome-terminalを使用して処理を実行します。これにより、起動時にユーザーが情報を入力できる端末を開くことができます。

# mount_enc.sh launches the following command in the end 
bash ~/launch_in_bg.sh rhythmbox 

mount_enc.shは、通常の端末から起動したときの動作をまったく行いません。しかし、私は起動時に自動的に起動したいと思いますし、スクリプトが完了したらリズムボックスを開いたままにしておくべきです。

# launch_in_bg.sh is just doing what it's supposed to 
($PRGRM > /dev/null 2>&1) & 

gnome-terminalでrhythmboxを開くことができません。また、gnome-terminalがmount_enc.shスクリプトの実行を終了した後、rhythmboxを実行し続けるには、私のアプローチが間違っていると思います。誰かがより良い解決策を考えることができますか?

答えて

1

(バックグラウンドでも)コンソールからプログラムを開くと、プログラムのプロセスはコンソールプロセスの子プロセスであり、コンソールプロセスが終了すると終了します。 実行中のプログラムのプロセスを維持するには、コンソールプロセスから切り離さなければなりません。分離は複数の方法で行うことができます。いくつかの例:

nohup rhythmbox & 

または

rhythmbox & disown 

、出力を抑制し、スクリプトのようにリダイレクトを使用するには。

関連する問題