RmenuをCentOS6のGUI上で開発しようと頑張ってみました。

 Cent7ので動かす方がいいのだろうが諸般の事情から6で動かしてみました。
rubypostgresqlのバージョンが古すぎるので入れ替えましたし、pgAdmin3とpostgresqlの接続に手間取ってしまいました。
 私はWindowsではコマンドプロンプトの窓はRmenuのバッチ起動ぐらいしか使わないので起動した後に最小化しておけば後はGUIがメインなので問題になりません。
 しかし、Centos6ではコマンドプロンプトの窓に相当するのがgnome-terminalになり、私の場合、Rmenuのバッチ起動以外にも色々と使います。
 gnome-terminalは最小化すると「端末」という表示だけが下部のバーに表示されます。
 同じバッチを起動したことを忘れて重複起動したり、他の用途にterminalを使って最小化すると表示が「端末」となってバッチ起動したterminalと区別がつかなくなって困ることもありました。
 そこで起動スクリプトに少し手を入れてみました。

MainController.rb

#!/bin/sh

if [ $(pgrep -fo "MainController.rb") ]; then
gnome-terminal -e "sh -c 'echo "MainControllerは既に起動しています";exec bash'"
else
#起動対象のRubyプログラム
exec_path="${HOME}/Rmenu/System/Server/Libraries/Main/MainController.rb"

# 前処理:コマンドラインオプションの確認
#-l: 起動前に最新のログファイルを削除する
#-la: 起動前に全てのログファイルを削除する
for args in $@; do
case "${args}" in
"-l" )
log_dir="${HOME}/Rmenu/System/Server/Logs"
rm -f ${log_dir}/controller.log
rm -f ${log_dir}/model.log
rm -f ${log_dir}/modelDB.log
rm -f ${log_dir}/view.log
;;
"-la" )
log_dir="${HOME}/Rmenu/System/Server/Logs"
rm -f ${log_dir}/controller.log*
rm -f ${log_dir}/model.log*
rm -f ${log_dir}/modelDB.log*
rm -f ${log_dir}/view.log*
;;
esac
done

# 主処理
if [ -f $exec_path ]; then
# カレントディレクトリ変更
cd ${exec_path%/*}
# Ruby プログラムの実行
gnome-terminal -t Maincontroller -e "sh -c 'echo "カレントディレクトリ変更";echo "${exec_path%/*}";
echo "メインコントローラを起動しました";ruby ${exec_path##/*/
}'"
fi
exit
fi