回答:
強制終了する権限があるすべてのプロセスを強制終了するには、単にコマンドを実行します
kill -15 -1
またはkill -9 -1
、目的の動作に応じて(man kill
詳細に使用)
firefoxなどの特定のプロセスを強制終了するには、単に実行します
pkill firefox
またはkillall firefox
あなたが望む行動に応じて:「killall」と「pkill」の違いは何ですか?
実行中のプロセスを確認するには、次のコマンドを使用します
ps -ef
ユーザーbobですべてのプロセスを検索する場合、これが役立つ場合があります
pgrep -l -u bob
または
ps -ef | grep bob
firefox-bin
です。
killall firefox
してみて、killall firefox-bin
何が機能するかを確認できます。最初のコメントに同意します。
sudo kill <pid>
またはを使用sudo killall <process-name>
使用できます
ps -ax | grep application name
ターミナルでfirefoxタイプを検索するとps -ax | grep firefox
、対応するアプリケーションのプロセスIDが表示されます。kill
プロセスid = 1317の場合、コマンドでそのアプリケーションを停止できます。
kill -9 1317
ユーザーが所有するすべてのプロセスを強制終了するにはusername
、次を実行します。
pkill -U username
問題を2つの部分に分けます。
1)自分が開始したプロセスを見つけるにはどうすればよいですか?これを実行します:
ps -u `whoami`
これwhoami
は、使用しているアカウントの名前がわからない場合に使用します。そうでない場合は、引用符なしでアカウントの名前を入力します。
これにより、アカウントで削除できるすべてのプロセスがリストされます。
2)ps
コマンドは、プロセス番号、TTY、時間、およびCMDをリストします。プロセスIDは最初の列です。その番号を使用してプロセスを強制終了します。プロセスを強制終了するときは注意してください。間違ったプロセスを強制終了すると、何かが壊れる可能性があります。プロセスをkill
強制終了するには、プロセスにSIGNALを送信するコマンドを使用します。シグナルは、プロセスが何をすべきかを示します。たとえば-1
、プロセスにを送信すると、構成ファイルをリロードするように要求されます。aを送信すること-2
は、そのプロセスでControl + Cを押すことと同等です。-9
カーネルはプロセスに通信せずにプロセスを放棄します。
ps -u whoami
が次のようなものを返したとします
PID TTY TIME CMD
4333 pts/1 00:00:00 fish
4335 ? 00:00:00 fishd
4816 ? 00:00:00 intellij
4868 ? 00:50:42 java
4939 ? 00:00:19 fsnotifier64
7667 ? 02:49:08 firefox
7698 ? 00:00:00 unity-webapps-s
そしてfirefox
、プロセスIDでプロセスを強制終了したい場合は、次のようにします。
kill -1 7667
次に、同じps
コマンドを再実行して、プロセスがまだ実行されているかどうかを確認します。まだ実行中の場合は、
kill -2 7667
まであなたの方法で働いています-9
。
アカウントによって開始されたすべてのプロセスを強制終了するには、と入力しkill <level> -1
ます。前と同じ:まで進みます-9
。
プロセスの名前がわかっている場合は、単にに進むことができkillall <processname>
ます。例:(killall fish
この意味で、魚はフレンドリーインタラクティブシェルです)。
のドキュメントkillall
は次の場所にあります:http : //manpages.ubuntu.com/manpages/hardy/man1/killall.1.html
このアプリケーションを使用すると、プログラムのリストを表示できます
htopをインストールする
sudo apt-get install htop
プロセスを参照してプロセスを強制終了するには、インストールして削除するだけです
... Linuxのすべてのプロセスはシグナルに応答します。シグナルは、プログラムに動作を終了または変更するように指示するosレベルの方法です。
PIDによるプロセス信号の送信方法
プログラムにシグナルを渡す最も一般的な方法は、killコマンドを使用することです。
ご想像のとおり、このユーティリティのデフォルトの機能はプロセスの強制終了を試みることです。
kill PID_of_target_process
これにより、プロセスにTERMシグナルが送信されます。TERMシグナルは、プロセスに終了するよう指示します。これにより、プログラムはクリーンアップ操作を実行し、スムーズに終了できます。
プログラムが正常に動作せず、TERMシグナルが与えられたときに終了しない場合、KILLシグナルを渡すことでシグナルをエスカレートできます。
kill -KILL PID_of_target_process
これは、プログラムに送信されない特別な信号です。
代わりに、オペレーティングシステムカーネルに渡され、プロセスがシャットダウンされます。これは、送信されたシグナルを無視するプログラムをバイパスするために使用されます...
Skypeを(私の場合は)殺すために書いた小さなスクリプトを書きました。
kill -s 9 `ps aux | grep skype | head -n 1 | cut -f4 -d" "`
しかし、私はそれがうまくいったので、pidが異なる長さであり、スペースの量が異なっていたため、翌日は機能しなかったことがわかりました
それから私はこのサイトに出くわし、試しました
pgrep -l -u justin
便利な形式でプロセスを出力します
[pid] [name]
そこで、スクリプト内のコードを次のように調整しました。
kill -s 9 `pgrep -l -u justin | grep skype | cut -f1 -d" "`
これは、すべてのプロセスjustin
が実行されているパイプ(任意のユーザー名に変更可能)をgrep
探してskype
(これをプロセスに変更できます)、その行にパイプを送りcut
、PIDのみを読み取って最終的にそれを使用します強制終了するkill
コマンドのPID 。
-l
、実行してpgrep -u justin skype
、殺すために:(pkill -u justin skype
またはpkill -KILL -u justin skype
SIGKILLを送信するため)。
ここに私が書いた単純なpythonスクリプト、killProcess.pyがあります。これは、入力として何でも受け入れ、それを殺します。
このスクリプトを書いたのは、多くのpythonまたはノードプロセスがあり、それらを個別にプログラムで強制終了するためです。「killall python」を使用することはできません。実行し続ける必要があるプロセスが停止するためです。
ファイルに「killProcess.py」という名前を付けてから、停止するスクリプトの名前を追加してください。例:python killProcess.py runnablePoller.pyはrunnablePoller.pyファイルを強制終了します
import os;
import sys;
for arg in sys.argv:
if(arg!="killProcess.py"):
process=arg;
print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
try:
pid=int(p);
print(pid);
break;
except:
continue;
os.system("kill "+str(pid));
Ctrl+ Alt+ Deleteは、数回クリックするだけでプロセスを簡単に終了できるタスクマネージャーへのアクセスを許可するように設定できます。
http://ubuntuhandbook.org/index.php/2013/07/use-ctrl-alt-del-task-manager-ubuntu/
kill -15 -1
のみkill -9 -1
進みます。データベーストランザクションの途中にある可能性のあるプロセスをランダムに強制終了することは、あなたが提案するほど気軽にやるべきことではありません。