AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1027547
Accepted
Kubuntuer82
Kubuntuer82
Asked: 2018-04-24 10:21:37 +0800 CST2018-04-24 10:21:37 +0800 CST 2018-04-24 10:21:37 +0800 CST

以图形方式发送 SIGSTOP 或 SIGCONT 信号(类似于 xkill)

  • 772

问题

您是否知道通过单击进程生成的图形窗口来发送SIGSTOP(暂停进程)或(恢复)进程的任何工具/脚本?SIGCONT

一些上下文

已经有一个名为xkill通过单击窗口杀死程序的工具,但它没有发送特定信号的选项。这是一个遗憾,因为有点相关的命令行工具之类kill的都有这个选项。

通常我通过命令行手动获取相应的进程名称并使用类似的工具来执行此操作kill,pkill或者killall能够以类似于使用该xkill工具单击窗口的方式以图形方式执行此操作会很好。

应用

我会发现这样的工具非常有用,可以在 CPU 过于“紧张”时以图形方式暂停一些繁重的进程,而不会终止它们并且不会丢失无法保存的数据(例如,对于长时间计算的部分结果)。

gui xorg process signal xkill
  • 2 2 个回答
  • 1048 Views

2 个回答

  • Voted
  1. Best Answer
    Byte Commander
    2018-04-24T11:25:46+08:002018-04-24T11:25:46+08:00

    您可以使用xdotool来允许用户单击一个窗口并获取其进程 ID。然后,您可以使用kill向该进程发送例如 STOP 或 CONT 信号并以这种方式冻结/解冻它。

    首先,您可能必须 install xdotool,因为它没有预先安装:

    sudo apt install xdotool
    

    然后,获取拥有特定窗口的进程的 PID 的命令(可以通过单击鼠标选择)将是:

    xdotool selectwindow getwindowpid
    

    这将打印数字进程 ID。您可以使用提供它作为参数kill -STOP或kill -CONT暂停并继续所述过程。这可以通过将 PID 存储在一个变量中来简化,就像下面这个小脚本一样,它将被点击的窗口的进程暂停 5 秒:

    #!/bin/bash
    wpid="$(xdotool selectwindow getwindowpid)"
    kill -STOP "$wpid"
    sleep 5
    kill -CONT "$wpid"
    

    您现在可以将此脚本保存在您的计算机上,例如将其绑定到键盘快捷键。

    注意: man xdotool关于getwindowpid子命令的说明:

    “这需要拥有一个窗口的应用程序付出努力,并且可能不适用于所有窗口。”

    换句话说,它可能根本不能工作,或者至少不能完全按照某些应用程序的预期工作。
    也可能发生多个窗口具有相同的对应进程 ID,例如所有 gnome-terminal 实例都归同一个父级所有。在这种情况下,该命令将冻结所有这些,这可能不是有意的。

    • 2
  2. kotofos
    2019-07-11T00:18:16+08:002019-07-11T00:18:16+08:00

    改进字节指挥官♦ 的回答:

    有基于 xdtool 的脚本:https ://github.com/RegisterFault/clickstop

    使用 xdotool 将 SIGSTOP 和 SIGCONT 信号发送到单击的应用程序的进程树的 Bash 脚本

    优点是它将暂停整个进程树,例如暂停多进程 chrome 或 firefox。

    • 1

相关问题

  • 类似于 Eyefinity 的东西?

  • 如何重置我的键盘布局?

  • 帮助让 Flash 播放器在第二个屏幕上工作?

  • iptables 的图形用户界面?

  • 从共享 NFS /home 到完整的 LDAP 解决方案

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve