私のホームフォルダにgnomeで実行されるアプリケーションがあります。これでMeta+を押すと、実行したいアプリケーションを追加しましたR。CCSM)。マイホームフォルダから実行してアプリケーションを実行します./gnome-run
。
印刷物に申請プロセスの兆候が見つかりませんps -A
。
問題は、gnome-runプログラムを開き、キーの組み合わせを押すとアプリケーションが閉じたいと思うことです。アプリケーションが実行されていることを確認するためにbashファイルを作成する方法はありますか?その場合は閉じ、それ以外の場合は開始します。
ベストアンサー1
このシェルスクリプトはすべてのプログラムの起動と停止を処理する必要があります。
#!/bin/bash
BASECMD=${1%%\ *}
PID=$(pgrep "$BASECMD")
if [ "$?" -eq "0" ]; then
echo "at least one instance of "$BASECMD" found, killing all instances"
kill $PID
else
echo "no running instances of "$BASECMD" found, starting one"
$1
fi
以下に保存すると仮定すると、~/mystarter
それを使用してすべてのコマンドを実行できます~/mystarter <name>
。たとえば、あなたの場合はMeta+をR次にバインドします。
~/mystarter gnome-run
そして、スクリプトが実行可能であることを確認してください。また、毎回場所全体を入力する必要がないように、どこかに置くことをお勧めchmod u+x ~/mystarter
します。PATH
gnome-run
に表示されないという事実は、ps -A
gnome run自体が実際のプロセスを開始するスクリプトではないことを確認してください。ps -A | wc -l
開始前後の違いを確認してください(実行中のすべてのプロセスが計算されます)。
編集する:
これで回答を受け入れましたので、これが参照点になるようにコマンドライン引数を使用してコマンドを実行するサポートを追加する必要があると思いました。次のコマンドを実行します。
./mystarter 'cmd args'
たとえば、
./mystarter 'ncmpcpp -c ~/.ncmpcpp'
このコマンドは単にすでに実行中であることを確認し、ncmpcpp
そうでない場合は完全なコマンド(引数を含む)を実行します。ncmpcpp