ターミナルを介してGUIアプリケーションをソフトキルする方法は?

ターミナルを介してGUIアプリケーションをソフトキルする方法は?

おなじみの方法でGUIアプリケーションを閉じる方法はありますか?」今やめてください。「それで、アプリケーションウィンドウへのグラフィカルアクセスは必要ありませんか?

たとえば、Gnome / Xディスプレイが黒くクラッシュした場合は、tty2に切り替えてFirefoxなどのアプリケーションを閉じて設定などを保存できるようにしたいと思います。せいぜい追加のユーザークエリは必要ありません。

答え1

通常、SIGHUPを使用して「使い慣れた」(グラフィックインターフェイスの有無にかかわらず)アプリケーションを終了できます。

kill -HUP <application_pid>

編集する:いくつかの追加情報を追加しました。

SIGHUPの処理方法はアプリケーションによって異なります。デイブこの信号はブロックまたは処理される可能性があることに注意してください。しかし、かなり完璧ですインタラクティブアプリケーションはSIGHUPを介して正常に終了します。

一方、私は通常、次のようなパターンに従うことを認めなければなりません。

kill -HUP <application_pid>
# check if application is still running
kill -INT <application_pid>
# check if application is still running
kill -KILL <application_pid>

明らかに、最後のコマンドはそれほど「おなじみの」ものではありません。

答え2

次のことを試すこともできます。

kill -TERM <pid>

または

kill -TERM `pidof <application_name>`

少なくとも一部のシステムでは、システムがシャットダウンすると、すべてのプロセスがKILL(9)信号を送信する前にTERM(15)信号を送信します。 HUPは通常、アプリケーションがその構成を再ロードするのを許可しますが、プロセスによって異なる場合があります。

答え3

アプリケーションを終了し、その構成を保存するように指示する普遍的な方法はありません。dcop kfoo MainApplication-Interface quit一部のKDE 3アプリケーションなど、特定のフレームワークを使用するアプリケーションに通知する方法はいくつかあります。アプリケーションが確認を求めるダイアログボックスが表示されることがあります。

Xディスプレイが利用できなくなった場合は、Xサーバーをシャットダウンしてください。Ctrl++を押します。これがうまくいかない場合は、XサーバーAltプロセスを終了してください。 Xサーバーがクラッシュすると、すべてのXアプリケーションが通知を受け取り、正常にシャットダウンしようとします(すべてが保存されるという保証はありませんが、これが最善の選択です)。BackSpacesudo pkill -x Xorg

答え4

考慮すべき他の2つのコマンドwmctrl -cはとですxdotool windowkill。それがあなたが求めているのかわかりませんwindowkill。そうでなければ興味があるかもしれません。windowdelete修理する。

関連情報