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 / 问题

问题[signal](ubuntu)

Martin Hope
ynn
Asked: 2020-07-16 02:39:55 +0800 CST

在关闭之前让 gnome-terminal 请求用户确认

  • 5

当您在gnome-terminal没有任何选项的情况下打开并执行阻止命令(例如python3,vim或cat),然后尝试通过关闭按钮(即x标题栏中的按钮)或某些键盘快捷键关闭窗口时,会显示一个确认窗口:

在此处输入图像描述

但是,当您gnome-terminal使用指定的执行命令打开时,即以 的形式gnome-terminal -- python3,确认窗口不再显示,并且在您(意外)单击关闭按钮后立即关闭窗口。

即使使用表格也可以显示确认窗口gnome-terminal -- <command>吗?如果这是不可能的,是否有任何解决方法?


环境:

$ gnome-terminal --version
# GNOME Terminal 3.36.2 using VTE 0.60.3 +BIDI +GNUTLS +ICU +SYSTEMD

我试过的:

  • 为执行的命令配备所有支持信号的信号处理程序不起作用;尽管该过程在捕获SIGHUP(三次),SIGCONT(一次)和SIGWINCH(一次)时在关闭中幸存下来,但窗口仍然在没有确认的情况下关闭。我还必须执行kill -SIGKILL <process id>以终止该进程。

  • 我发现了一个例外。当您执行时,会gnome-terminal -- bash显示确认信息(尽管默认情况下与 相同)。gnome-terminal

command-line gnome-terminal signal
  • 1 个回答
  • 662 Views
Martin Hope
Ano.Smith
Asked: 2020-04-01 11:53:29 +0800 CST

为什么 Ctrl + C 不会杀死在终端中运行的 Python?

  • 7

我试图理解为什么当我在内部按下 Ctrl + C 和无限循环时整个 Python 进程没有被杀死的原因,或者就此而言,我在终端中运行的任何 Python 函数并且只有循环/函数被停止?

command-line process signal
  • 2 个回答
  • 23312 Views
Martin Hope
newbuntu
Asked: 2020-02-15 08:22:32 +0800 CST

从挂起模式唤醒后 HDMI 显示器未接收到信号

  • 1

我有一个问题,在我将 ubuntu 18.04 笔记本电脑从挂起模式唤醒后,我的 HDMI 显示器(在扩展显示设置中设置为主显示器)没有接收到信号。我每次都必须拔下 HDMI 电缆并将其重新插入才能被识别。

可以想象,这非常烦人。

有解决这个问题的方法吗?

提前致谢

suspend display hdmi signal 18.04
  • 1 个回答
  • 1037 Views
Martin Hope
Alish
Asked: 2020-01-26 02:34:42 +0800 CST

nohup 和 mpirun 有什么冲突吗?

  • 1

我想在 ubuntu 台式计算机上开始一个大型模拟。我可以物理(非远程)访问这台 PC。此模拟可能需要数周时间。启动进程的命令是:

mpirun -np 100 icoFoam -parallel | tee log

icoFoam可执行文件在哪里,-parallel需要作为它的选项。
此命令在终端中打印数据。有时终端关闭或操作系统在长时间模拟期间随机注销,因此,进程终止。我试图通过几个替代命令来解决这个问题:

nohup mpirun -np 100 icoFoam -parallel > log  & 
nohup mpirun -np 100 icoFoam -parallel > log  & disown & 
nohup mpirun -np 100 icoFoam -parallel | tee log & disown & 
nohup mpirun -np 100 icoFoam -parallel | tee log & disown & > /dev/null 2>& 1 & nohup mpirun -np 100 icoFoam -parallel > /dev/null 2>& 1  &
systemd-run --scope --user mpirun -np 100 icoFoam -parallel | tee log &
systemd-run --scope --user mpirun -np 100 icoFoam -parallel | tee log & disown &
systemd-run --scope --user nohup mpirun -np 100 icoFoam -parallel | tee log & disown &
tmux

结果
除了 form tmux,使用这些命令中的任何一个,当我关闭终端时,进程都会终止。
tmux当我从我的用户帐户注销时也会终止。

我的发现

  1. 作为最简单的解决方法,我混合了nohup和disown(从这里)。
  2. 我猜想包括 , 在内的命令由于关闭终端(从这里)而tee被终止。因此,我使用重定向到日志文件或(从这里),这两者也都通过关闭终端而终止。 SIGPIPE/dev/null
  3. 我也检查了systemd-run。但它也可以通过关闭终端来终止。
  4. 为了查看程序是否安装了自己的处理程序,我执行了这个:

    nohup mpirun -np 100 icoFoam -parallel > log  &
    grep Sig /proc/$!/status
    

    哪个返回

    SigIgn: 0000000000000000
    

    因此,我猜是这种情况,即mpirun安装了自己的处理程序来覆盖nohup(从这里)的保护。

  5. 我不知道是否可以发送自定义处理程序以mpirun不覆盖nohup.

我的问题
我想执行以下命令,以便只要终端未关闭,它就会在终端中打印输出,并且不会通过关闭终端或从用户帐户注销来终止该过程。

mpirun -np 100 icoFoam -parallel

操作系统:Ubuntu 18.04
可执行文件:OpenFOAM
mpirun(Open MPI):2.1.1

更新
通过注销,我的意思是按注销按钮(图像),而不是锁定屏幕(super+L) 在此处输入图像描述

先感谢您。

gnome-terminal logout signal 18.04 mpi
  • 3 个回答
  • 1167 Views
Martin Hope
Victor
Asked: 2019-07-31 07:20:01 +0800 CST

SIGQUIT 打破管道

  • 1

Linux ping 实用程序可以在SIGQUIT不终止的情况下生成一些关于接收的统计信息。它看起来像这样:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=45 time=37.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=45 time=36.3 ms
2/2 packets, 0% loss, min/avg/ewma/max = 36.399/37.126/37.672/37.854 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=45 time=36.2 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 36.294/36.849/37.854/0.711 ms

如您所见,我SIGQUIT在第二次请求后立即按Ctrl+发送\并立即获得统计信息。

但是当我尝试对管道使用 ping 时,情况就不同了。命令:

ping -O 8.8.8.8 | while read pong; do echo "$(date): $pong"; done

这次发送SIGQUIT(Ctrl+ \)打破了管道:

Tue Jul 30 18:15:20 EEST 2019: PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
Tue Jul 30 18:15:20 EEST 2019: 64 bytes from 8.8.8.8: icmp_seq=1 ttl=45 time=71.1 ms
Tue Jul 30 18:15:21 EEST 2019: 64 bytes from 8.8.8.8: icmp_seq=2 ttl=45 time=51.4 ms
Tue Jul 30 18:15:22 EEST 2019: 64 bytes from 8.8.8.8: icmp_seq=3 ttl=45 time=54.5 ms
Tue Jul 30 18:15:23 EEST 2019: 64 bytes from 8.8.8.8: icmp_seq=4 ttl=45 time=56.5 ms
Tue Jul 30 18:15:24 EEST 2019: 64 bytes from 8.8.8.8: icmp_seq=5 ttl=45 time=56.5 ms
Tue Jul 30 18:15:25 EEST 2019: 64 bytes from 8.8.8.8: icmp_seq=6 ttl=45 time=60.1 ms
6/6 packets, 0% loss, min/avg/ewma/max = 51.421/58.394/63.927/71.104 ms
Quit (core dumped)

有人可以告诉这种行为的原因是什么吗?

networking command-line pipe signal
  • 1 个回答
  • 185 Views
Martin Hope
C. Cristi
Asked: 2018-10-14 04:17:28 +0800 CST

向进程发送多个终止信号

  • 0

假设我运行一个.sh进程。现在我打开一个新的终端选项卡,我想向它发送信号,为此,我只使用 kill:

kill -*signal number* *pid*

正确的?但是我想同时发送 13 个信号,我该怎么做呢?

process kill signal
  • 1 个回答
  • 1038 Views
Martin Hope
Kubuntuer82
Asked: 2018-04-24 10:21:37 +0800 CST

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

  • 2

问题

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

一些上下文

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

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

应用

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

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

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