444

Firefox を起動しようとすると、「Firefox プロセスが既に実行されています」と表示されることがあります。だから私はこれをしなければなりません:

jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy    7451 25.0 27.4 170536 65680 ?        Sl   22:39   1:18 /usr/lib/firefox-3.0.1/firefox
jeremy    7578  0.0  0.3   3004   768 pts/0    S+   22:44   0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451

私が望むのは、それをすべて実行してくれるコマンドです。プロセスのリストで入力文字列とgrepそれ(または何でも)を受け取り、出力内のすべてのプロセスを強制終了します。

jeremy@jeremy-desktop:~$ killbyname firefox

PHPで実行してみましたが、PHPスクリプト自体でexec('ps aux')実行されたプロセスのみを表示しているようです(したがって、表示されるプロセスはそれ自体だけです)。exec()

4

18 に答える 18

639
pkill firefox

詳細: http://linux.about.com/library/cmd/blcmdl1_pkill.htm

于 2008-10-02T04:58:24.173 に答える
182

使用することも可能:

pkill -f "Process name"

私にとっては、完璧に機能しました。それは私が探していたものでした。pkill は、フラグのない名前では機能しません。

が設定されている場合-f、完全なコマンド ラインがパターン マッチングに使用されます。

于 2015-01-07T13:49:08.170 に答える
69

プロセスを名前で強制終了できますkillall <name>

killallは、指定されたコマンドのいずれかを実行しているすべてのプロセスにシグナルを送信します。シグナル名が指定されていない場合は、SIGTERM が送信されます。

シグナルは、名前 (例: -HUPまたは-SIGHUP ) または番号 (例: -1 ) またはオプション-sで指定できます。

コマンド名が正規表現 (オプション-r ) ではなく、スラッシュ (/) が含まれている場合、その特定のファイルを実行しているプロセスは、その名前に関係なく、強制終了するために選択されます。

しかし、でプロセスが表示されない場合はps aux、おそらくそれを強制終了する権利がありません...

于 2008-10-02T05:05:29.320 に答える
53

A bit longer alternative:

kill `pidof firefox`
于 2008-10-02T16:32:57.703 に答える
25

snippet起動パスにあるすべてのプロセスを強制終了します。/directory/ をスニペットとして配置することで、特定のディレクトリから開始されたすべてのアプリを強制終了できます。これは、同じアプリ ディレクトリから同じアプリケーションの複数のコンポーネントを起動する場合に非常に便利です。

ps ax | grep <snippet> | grep -v grep | awk '{print $1}' | xargs kill

* 可能であれば、pgrep を使用したいと思います

于 2017-04-05T13:03:46.023 に答える
12

Mac では、pgrep と pkill が見つからず、killall も機能していなかったので、単純なワンライナー スクリプトを作成しました。

export pid=`ps | grep process_name | awk 'NR==1{print $1}' | cut -d' ' -f1`;kill $pid

これを行う簡単な方法があれば、共有してください。

于 2013-02-21T23:32:58.070 に答える
7

grep で強制終了するには:

kill -9 `pgrep myprocess`
于 2014-11-14T20:14:41.647 に答える
5

より正しいのは次のとおりです。

export pid=`ps aux | grep process_name | awk 'NR==1{print $2}' | cut -d' ' -f1`;kill -9 $pid
于 2014-05-23T07:47:45.507 に答える
5

通常はkillallコマンドを使用します。

このコマンドの詳細については、このリンクを確認してください。

于 2008-10-02T04:58:57.713 に答える
3

私は自分自身に同じ質問をしていましたが、現在の回答の問題は、プロセスが強制終了されることを安全にチェックしていないことです...それはひどい間違いにつながる可能性があります:)...特にいくつかのプロセスがパターンに一致する場合.

免責事項として、私は sh のプロではなく、確かに改善の余地があります。

だから私は小さなshスクリプトを書いた:

#!/bin/sh

killables=$(ps aux | grep $1 | grep -v mykill | grep -v grep)
if [ ! "${killables}" = "" ]
then
  echo "You are going to kill some process:"
  echo "${killables}"
else
  echo "No process with the pattern $1 found."
  return
fi
echo -n "Is it ok?(Y/N)"
read input
if [ "$input" = "Y" ]
then
  for pid in $(echo "${killables}" | awk '{print $2}')
  do
    echo killing $pid "..."
    kill $pid 
    echo $pid killed
  done
fi
于 2016-02-22T13:38:48.497 に答える
2

GNOME を実行している場合は、システム モニター ([システム] -> [管理] -> [システム モニター]) を使用して、Windows の場合と同様にプロセスを強制終了できます。KDE にも同様のものがあります。

于 2008-10-02T05:42:31.323 に答える
1

kill -9 $(ps aux | grep -e myprocessname| awk '{ print $2 }')

于 2016-06-21T07:17:33.130 に答える
0
ps aux | grep processname | cut -d' ' -f7 | xargs kill -9 $
于 2016-05-11T15:52:11.357 に答える