Ejemplo de caso de uso:
Ejecuto Chromium con un par de pestañas abiertas y decido que no necesito acceder a la aplicación durante los próximos 20 minutos. Para ahorrar tiempo de batería de la computadora portátil, me gustaría hibernar (congelar) Chromium sin tener que cerrar la aplicación (volver a abrir y volver a cargar todas las pestañas requiere tiempo que me gustaría ahorrar hibernando).
killall
solución es realmente elegante. :)Respuestas:
Puede usar el
killall
comando para enviar unaSIGSTOP
señal a todos los procesos que coincidan con un nombre dado para congelarlos y luego enviarlos deSIGCONT
la misma manera para descongelarlos nuevamente.Primero descubra el nombre del proceso usando
pgrep -l SEARCH_PATTERN
:Tenga en cuenta que recortará nombres largos, por lo tanto,
r
falta el. Pero esto no es un problema, ya que puede usar la Tabfinalización para ingresar el nombre del proceso que lo completará automáticamente.Luego envía la
SIGSTOP
señal a todos los procesos nombradoschromium-browser
así:La ventana de Chromium se atenuará como si no respondiera. Bueno, realmente no respondió, por lo que era de esperar. No puede interactuar con la ventana de ninguna manera ahora (a excepción de la barra de menú y la minimización, etc., que maneja el administrador de ventanas y no la aplicación en sí). Pero los eventos de hacer clic en los botones, etc. todavía se generan y se agregan a la cola de eventos de la aplicación, por lo que todos se procesarán a la vez cuando descongele la aplicación nuevamente.
Descongela la aplicación simplemente ejecutando este comando que envía la
SIGCONT
señal a los procesos especificados:A veces, congelar una aplicación de esta manera puede hacer que se bloquee, así que asegúrese de guardar cosas importantes antes de congelar una aplicación.
En casos raros, incluso el entorno de escritorio / administrador de ventanas / cualquier otra cosa podría dejar de responder también. En este caso, debe descongelar la aplicación congelada a través de un TTY:
Presione Ctrl+ Alt+ F1para cambiar a TTY1. Se le pedirá que inicie sesión, así que ingrese su nombre de usuario y contraseña. Luego ejecute el comando para descongelar la aplicación de la misma manera que lo haría con su emulador de terminal normal. Después de eso, vuelva al escritorio (TTY7) usando Ctrl+ Alt+ F7y debería estar bien nuevamente.
fuente
pgrep
, podrías haber continuado conpkill
SIGSTOP
existe el riesgo de que la aplicación falle , diría que es menor. A menudo lo he usado en Chromium, y no recuerdo que esa haya sido la razón de un accidente.killall
! ;-)Para suspender, intente:
killall -SIGTSTP chromium-browser
Si esto no funciona, probar la versión contundente:
killall -SIGSTOP chromium-browser
.De cualquier manera, para continuar usándolo
killall -SIGCONT chromium-browser
. Lo intenté con Firefox y funcionó. Sin embargo, tenga en cuenta que si hace clic en los botones de Chromium mientras está suspendido, ejecutará esas cosas una vez que continúe su ejecución.fuente
chromium-browser
como nombre de proceso. +1google-chrome
si usa Google Chrome, ya que la diferencia es aparentemente confusaPuedes probar lo siguiente (en una Terminal):
Entonces verás algo como esto:
Escriba el número 7166 (o el número que sea) y luego haga:
Eso suspenderá la ejecución del proceso. No liberará de inmediato la memoria utilizada, pero la memoria estará disponible para otros procesos si la necesitan.
Entonces hazlo
kill -CONT 7166
para trabajar con el programa nuevamente.Tenga en cuenta que debe cambiar 7166 cuando corresponda.
fuente