ユースケースの例:
いくつかのタブを開いてChromiumを実行し、次の20分間はアプリケーションにアクセスする必要がないと判断しました。ノートパソコンのバッテリー時間を節約するために、アプリケーションを閉じずにChromiumを休止状態(フリーズ)にしたいと思います(すべてのタブを再度開いて再ロードするには、休止状態にすることで節約したい時間が必要です)。
killall
実際に解決策は本当にエレガントだと思います。:)
ユースケースの例:
いくつかのタブを開いてChromiumを実行し、次の20分間はアプリケーションにアクセスする必要がないと判断しました。ノートパソコンのバッテリー時間を節約するために、アプリケーションを閉じずにChromiumを休止状態(フリーズ)にしたいと思います(すべてのタブを再度開いて再ロードするには、休止状態にすることで節約したい時間が必要です)。
killall
実際に解決策は本当にエレガントだと思います。:)
回答:
このkillall
コマンドを使用してSIGSTOP
、特定の名前に一致するすべてのプロセスにシグナルを送信してそれらをフリーズし、後でSIGCONT
同じ方法で再度解凍することができます。
最初にプロセス名を見つけますpgrep -l SEARCH_PATTERN
:
$ pgrep -l chrom
13010 chromium-browse
13036 chromium-browse
13038 chromium-browse
13153 chromium-browse
13166 chromium-browse
13169 chromium-browse
13175 chromium-browse
13187 chromium-browse
13195 chromium-browse
13206 chromium-browse
長い名前がトリムされるため、r
が欠落していることに注意してください。ただし、Tab補完を使用してプロセス名を入力すると自動的に補完されるため、これは問題ではありません。
次に、次のようなSIGSTOP
名前のすべてのプロセスにシグナルを送信しますchromium-browser
。
$ killall -s STOP chromium-browser
Chromiumウィンドウは、応答しなくなったようにグレー表示されます。まあ、それは本当に無反応になったので、それは予想されることでした。これで、ウィンドウを操作することはできなくなります(メニューバーや最小化などは、アプリケーション自体ではなくウィンドウマネージャーによって処理されます)。ただし、ボタンをクリックするなどのイベントは引き続き生成され、アプリケーションのイベントキューに追加されるため、アプリケーションを再び解凍すると、すべてが一度に処理されます。
SIGCONT
指定したプロセスに信号を送信する次のコマンドを実行するだけで、アプリケーションを再び解凍できます。
$ killall -s CONT chromium-browser
この方法でアプリケーションをフリーズすると、クラッシュする場合があるため、アプリケーションをフリーズする前に重要なものを保存してください。
まれに、デスクトップ環境/ウィンドウマネージャー/その他でも応答しなくなる場合があります。この場合、凍結したアプリケーションをTTYで解凍する必要があります。
Ctrl+ Alt+ F1を押してTTY1に切り替えます。ログインするように求められますので、ユーザー名とパスワードを入力してください。次に、コマンドを実行して、通常のターミナルエミュレータで実行するのと同じ方法でアプリケーションを解凍します。その後、Ctrl+ Alt+ F7を使用してデスクトップ(TTY7)に戻ると、再び元気になります。
pgrep
、続けることができましたpkill
SIGSTOP
存在しますが、それは軽微だと思います。Chromiumでよく使用しましたが、これがクラッシュの理由であることを思い出せません。
killall
! ;-)
一時停止するには、次を試してください。
killall -SIGTSTP chromium-browser
これが機能しない場合は、強制バージョンを試してください:killall -SIGSTOP chromium-browser
。
いずれにしても、使用を継続するにはkillall -SIGCONT chromium-browser
。Firefoxで試してみたところ、うまくいきました。ただし、一時停止中にChromiumのボタンをクリックすると、実行を続行するとその機能が実行されることに注意してください。
chromium-browser
プロセス名として入力するだけです。+1
google-chrome
あなたは、Google Chromeを使用している場合、その差は明らかに混乱しているので
以下を試すことができます(ターミナルで):
ps aux | grep gedit
次に、次のようなものが表示されます。
barend 7166 5.3 1.0 722620 39044 ? Sl 16:19 0:00 gedit
番号7166(またはそれが何であれ)を書き留めてから、以下を実行します。
kill -STOP 7166
これにより、プロセスの実行が中断されます。使用したメモリはすぐには解放されませんが、必要に応じて他のプロセスで使用できるようになります。
それから
kill -CONT 7166
再びプログラムを使用します。
必要に応じて7166を変更する必要があることに注意してください。