从终端退出谷歌浏览器

sly*_*oty 30 kill chrome shell-script exit

google-chrome除了使用之外,还有没有办法从终端退出killall google-chrome
我希望能够在不杀死它的情况下从脚本中关闭它。

Kei*_*cio 31

此命令在所有窗口管理器中优雅地退出 chrome 进程树:

pkill --oldest chrome
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢:

/usr/bin/pkill --oldest --signal TERM -f chrome    
Run Code Online (Sandbox Code Playgroud)

细节:

  • 优雅的意思是:避免看到“谷歌浏览器没有正确关闭。回复......”下次chrome启动时
  • chrome 浏览器(例如 39.0.2171.95 版)陷阱并优雅地处理 SIGTERM
  • 向单个进程发出信号,即 chrome 进程树的根,因此 --oldest
  • SIGTERM与信号相同15,因此--signal TERM,或者只是将其省略,因为它SIGTERM是默认信号
  • wmctrl 适用于 Unity 和其他一些工具,但不适用于所有窗口管理器
  • wmctrl -c 一次关闭一个窗口,因此要关闭所有 chrome 窗口,您需要类似的东西 while wmctrl -c 'Google Chrome'; do sleep 0.2; done

  • 我假设我使用的是旧版本的 pkill,因为“--oldest”不是一个选项:使用“-o”有效。 (2认同)

Bal*_*ick 13

也许wmctrl可以提供一些帮助。您可以使用-c优雅地关闭窗口的选项:

wmctrl -c chrome
Run Code Online (Sandbox Code Playgroud)

该字符串chrome与窗口标题匹配。请注意,如果弹出某些消息(例如,当您打开多个选项卡时),该窗口可能不会关闭。