#! /bin/bash # #====================================================================== # [設定] # 変数$CONF_PATH ディレクトリ下に, # synergyサーバ設定ファイル # ... ファイル名: {clientマシン名}.sgc # を作成する # [使い方] # synergysrv {clientマシン名} #====================================================================== # 設定ファイル位置 CONF_PATH=$HOME/.synergy # 変数 own_name=`basename $0|sed 's/\.sh//'` conf_file="" client_name="" flag_background=0 #---------------- #【関数】Help #---------------- Fn_Help() { echo "usage: "`basename $0`" [options] {clientマシン名}" echo "[options]" echo " -help 本Helpメッセージ" echo " -background バックグランド実行" echo " -stop synergysを停止" echo " -check 動作をチェック" echo " -status (同上)" echo " " } #------------------------ #【関数】synergysを停止 #------------------------ Fn_Kill() { /usr/bin/ps -ef |grep "synergys" |grep -v $own_name|grep -v grep|sed 's/^ *//'|sed 's/[ ]\{1,\}/ /g' pid=`/usr/bin/ps -ef |grep "synergys" |grep -v $own_name|grep -v grep |/usr/bin/awk '{printf " %s",$2;}'` if [ ! -z "$pid" ]; then printf "\npid=%s\n終了しますか?(yes/no)" "$pid"; read yesno case $yesno in y*|Y*) kill -9 $pid echo "停止しました." ;; *) echo "停止しませんでした." ;; esac else echo "synergysは動作していません." fi } #-------------------------- #【関数】synergys動作状況 #-------------------------- Fn_Status() { /usr/bin/ps -ef |grep "synergys" |grep -v $own_name |grep -v grep|sed 's/^ *//'|sed 's/[ ]\{1,\}/ /g' pid=`/usr/bin/ps -ef |grep "synergys" |grep -v $own_name|grep -v grep |/usr/bin/awk '{printf " %s",$2;}'` if [ ! -z "$pid" ]; then echo "synergysは動作中です. pid=$pid" else echo "synergysは動作していません." fi } #------------------------- # オプション実行 #------------------------- if [ -z "$1" ]; then Fn_Help; echo "== STATUS ==" Fn_Status; exit 1; fi for i in $* do case $i in -h*|--h*) Fn_Help; exit 1; ;; -bac*|--bac*) flag_background=1 ;; -stop|--stop) Fn_Kill; exit 0 ;; -st*|--st*) Fn_Status; exit 0; ;; -ch*|--ch*) Fn_Status; exit 0; ;; *) conf_name="$CONF_PATH/$i.sgc" if [ -f "$conf_name" ]; then conf_file=$conf_name client_name=$i else echo "エラー:$conf_nameの設定ファイルがありません." exit 1 fi esac done #---------------- # Synergy実行 #---------------- if [ ! -z "$conf_file" -a -f "$conf_file" ]; then echo "client: $client_name" if [ $flag_background = 0 ]; then synergys -f -c $conf_file else synergys -c $conf_file fi else exit 1 fi exit 0