¿Hay alguna manera de hacer google-chrome
que se cierre, desde la terminal, además de usar killall google-chrome
?
Me gustaría poder cerrarlo desde un script sin matarlo.
¿Hay alguna manera de hacer google-chrome
que se cierre, desde la terminal, además de usar killall google-chrome
?
Me gustaría poder cerrarlo desde un script sin matarlo.
Respuestas:
Quizás wmctrl
podría ser de alguna ayuda. Puede usar la -c
opción que cierra una ventana con gracia:
wmctrl -c chrome
La cadena chrome
se compara con los títulos de las ventanas. Tenga en cuenta que la ventana podría no cerrarse si aparece algún mensaje emergente (por ejemplo, cuando tiene varias pestañas abiertas).
wmctrl
.
pkill -o chrome
Sin embargo.
Este comando sale del árbol de procesos de Chrome con gracia, en todos los administradores de ventanas:
pkill --oldest chrome
o si lo prefieres:
/usr/bin/pkill --oldest --signal TERM -f chrome
Detalles:
SIGTERM
--oldest
SIGTERM
es lo mismo que señal 15
, por lo tanto --signal TERM
, o simplemente déjelo fuera ya que SIGTERM
es la señal predeterminadawmctrl
funciona con Unity y algunos otros, pero no funciona con todos los administradores de ventanaswmctrl -c
cierra una ventana a la vez, así que para cerrar todas las ventanas de cromo necesitaría algo como while wmctrl -c 'Google Chrome'; do sleep 0.2; done
--oldest
que no es una opción: usar -o
works.
-f
argumento de pkill no me funciona. Tengo algunos otros procesos ejecutándose como root que tienen la palabra chrome en sus líneas de comando, por lo que me niegan el permiso. Sin -f
embargo, funciona perfectamente.
Esto funciona para mi:
killall --quiet --signal 15 -- chrome
Tenga en cuenta que estoy usando un comando bastante detallado para mantenerlo legible en el código, por supuesto, también podría emitir:
killall -q -15 chrome
Encendido Mac OS X
, use esto en su lugar
pkill -a -i "Google Chrome"
Lo que hace es buscar un proceso de Google Chrome y eliminar todos sus procesos principales también.
Del manual de pkill
-a Include process ancestors in the match list. By default, the
current pgrep or pkill process and all of its ancestors are
excluded (unless -v is used).
-i Ignore case distinctions in both the process table and the
supplied pattern.
Según la respuesta de @ keith-cascio , puedes intentar eliminar el proceso más antiguo. Tenga en cuenta que esto no funcionó para mí.
pkill -o -i "Google Chrome"
tratar:
kill -3 <pid_of_chrome>
Esto enviará una señal de "SALIR" a Chrome, que, dependiendo de su administrador de ventanas, será lo que generalmente se envía cuando se le pide que cierre.
kill
o killall
cuando Chrome lo ve como un bloqueo y solicita la restauración.
SIGQUIT
no suele enviarse a las aplicaciones cuando se le pide que cierre (no conozco ningún WM que haga esto). WM_DELETE_WINDOW
Es el estándar.
kill -15 <pid_of_chrome>
hizo lo que estaba buscando. Pero, google-chrome
tiene múltiples pids y tomó algunos intentos para obtener el correcto.