2017-08-03 6 views
0

これは私がここで初めて尋ねるものなので、私と一緒に裸にしてください。私はこの質問をGoogleで検索しましたが、私の特別なケースでは役に立たないものは何も見つかりませんでした。bashで実行中のコマンドのPIDを見つける方法は?

だから私が理解しようとしているのは、実行中の特定のコマンドのPIDであり、必要に応じてそれを強制終了できます。私はそれが私にPIDを与える必要がありますので、おそらく

my_command & echo $!

echo $!を入力して、コマンドのPIDを取得することが可能です知っています。しかし、これはそうではない、と私はなぜ私が知っていると思う:次のように私のコマンドがある :

それが実行されますように、戸建 screen第1およびタイプのコマンドを開き、上の保持

screen -d -m -S Radio /path/to/folder -f frequency -r path/to/song

バックグラウンドで実行しています。このように、echoが私に示すPIDは間違ったものです。私は、それは私のPIDをscreen -d -m -S Radio /path/to/folder -f frequency -r path/to/songの代わりに、画面の新しい端末で実行されたコマンドのPIDのPIDを示すと思います。

しかし、別の問題があります。端末でscreen -lsを実行すると、バックグラウンドで実行されているコマンドが表示されません。 Piは常に25%のCPU使用率(0%または1%の代わりに)で常時使用されているため、実際にコマンドとPIDが表示されます。

これで、私はコミュニティに電話します:新しい端末でその特定のコマンドのPIDをどのように見つけることができるか考えてください。私はbashスクリプトを書いているので、コードを使ってPIDを得ることができなければなりません。 PerfectはPIDを変数に格納するコマンドです!

ありがとうございます!

+0

SOはプログラミングに関する質問であり、Linuxの使用または設定に関する質問ではありません。 SuperUser.comまたはunix。stackexchange.comはこのような質問のためのより良い場所になります。 – Barmar

+0

'pgrep -f search_pattern' - 人間が消費するための出力であれば' -l'フラグを付け加えます。 –

+0

ありがとう@glennjackman、あなたのコメントは私のために働いた。どういうわけか私は今、コマンドのPIDを持っています! – Zebiano

答えて

0

@glennjackmanのおかげで、私は単純なpgrep search_wordで必要なPIDを得ることができました。最初はうまくいきませんでしたが、何らかの試行錯誤の末、何らかの形でそれを動作させました。変数にPIDを望む人のため、ちょうど私のデタッチセッションを示していないscreen -lsに問題について

pid=$(pgrep search_word)

を入力し、それはまだ解決していないが、私はそれに煩わしませんよ。私の問題@glennjackmanを解決してくれてありがとう!

EDIT:解決

第二の問題、berendsの答えにコメントをご確認ください。

0

あなたは簡単に(例えば)を書き込むことによって、すべての実行中のプロセスとそのPIDを見つけることができます。プロセスは、画面によって運営されて

ps aux 

をあなたはおそらく書き込みによって、それが簡単に見つけることができるように:

ps aux | grep screen 
あなたは、同様のbashスクリプトでこのコマンドを使用することができます:> https://www.lifewire.com/g00/uses-of-linux-ps-command-4058715?i10c

EDIT - psの私は、チェック(簡単にGoogleを)使用するパラメータについての詳細情報については

+0

ありがとうございます。グレープは何とか私を助けましたが、私が言ったように:私はそれがスクリプトになる必要があります。私は端末上でそれを自分自身で見つける方法を知っていますが、PIDを知り、 'ps aux |スクリプト内のgrep screenはあまり役に立たない...また、私の場合、少なくとも2つの結果が常に出てくるでしょう。 – Zebiano

+0

画面内で実行されている場合、OKを元に戻すことができます - あなたはそれをscreen -lsで見ることができるはずです。 screen -lsコマンドをスクリーン・セッションを所有しているユーザーと同じユーザーとして実行していますか? – berend

+0

正直言って私は考えていません...自分のラズベリピー(ユーザーPi)には1人のユーザーしかいないこと、そして端末には常に「pi @ raspberrypi」があることがわかります。だから私はそう思っている、私は同じユーザーとしてそれを実行しています。 – Zebiano

関連する問題