当我跑步时podman container kill -a,我得到
can only kill running containers. 11d887d57069b3ee630fd6f1b13d600485c34f5020ff09fec65f4e31dd7242a5 is in state configured: container state improper
can only kill running containers. 2132c0543eedbe3c4ee8680da508fea6251d38107d5e707f260eb5aa8549409d is in state configured: container state improper
can only kill running containers. 2db317cc73ec92e434fda88653f872e4c4cf07e9f32c0c29ecc5e69515beb96d is in state exited: container state improper
can only kill running containers. 465d133dec7a568bd8a6231036e1c489b6a6f88c65154629d75ce4161fb6e3c4 is in state exited: container state improper
Run Code Online (Sandbox Code Playgroud)
随后的运行仍然显示容器。我怎样才能摆脱它们?
当我尝试执行此有效命令时,man 1 kill我收到错误而不是正确的功能。
$ kill --timeout 1000 TERM --signal QUIT 12345
bash: kill: -timeout: invalid signal specification
Run Code Online (Sandbox Code Playgroud)
我正在使用util-linux的版本kill。
我不小心关闭了一个终端窗口,在该窗口中我限制了并行作业的 CPU 使用率。现在,如果我ps -e S在新的终端窗口中,我可以看到该作业为:
311029 pts/0 TN+ 275:25 jobname
Run Code Online (Sandbox Code Playgroud)
有办法恢复吗?我已经尝试过fg,bg但jobs我不确定这些命令的作用,并且无论如何它们都不会恢复工作。
父进程应始终与 N 个子进程一起运行。
我想运行一个脚本来显示/杀死所有没有父进程的子进程。
$ ps faux | grep process.pl
root 37140 0.3 0.1 61160 724 /process.pl [child]
root 22079 10.2 0.3 127332 64620 /process.pl [master]
root 22081 0.3 0.1 84752 26084 \_ /process.pl [child]
Run Code Online (Sandbox Code Playgroud) 作为 ps 状态的联机帮助页STATUS 值为“D”的进程表示“不间断睡眠(通常为 IO)”
另外,我读过:您应该在这里使用 TASK_INTERRUPTIBLE ,否则您的内核线程无法接收信号,并且您无法从用户空间 kill(1) 您的线程或在内核中使用 kthread_stop() 。
如果以上还不够,您可以阅读:进程状态(STAT)的 D 表示进程处于“不间断睡眠”状态。在现实世界中,这通常意味着它正在等待 I/O 并且不能/不会做任何事情——包括死亡——直到 I/O 操作完成。
假设我运行一个等待 IO 的进程:
[root@mpinode02 Distros]# find / -mmin +10 > /dev/null &
[1] 15592
Run Code Online (Sandbox Code Playgroud)
然后我看看状态和wchan过程
[root@mpinode02 Distros]# ps -C find -ostat,comm,wchan
STAT COMMAND WCHAN
D find sleep_on_buffer
Run Code Online (Sandbox Code Playgroud)
好,我们来看看这个过程是不是真的无间断:
[root@mpinode02 Distros]# kill 15592
[1]+ Terminated time find / -mmin +10 > /dev/null
Run Code Online (Sandbox Code Playgroud)
那么,正如您所看到的,现实世界中 D 的进程被杀死了,ps 的手册页是否过时了?
事实上,我看到有一种新的状态: TASK KILLABLE但我想知道 hot 来列出它们。你知道如何列出可杀死的任务或识别它们吗?
有正在运行的作业列表。
pdf is opened
image is opened
text file opened
Run Code Online (Sandbox Code Playgroud)
这一切都在 fg/bg 中。
是否有任何选项可以强制关闭特定作业?另外,我想知道是否可以在命令的帮助下关闭作业。
我运行了一个 Unix 脚本,每隔几秒钟就给我和我的朋友发送电子邮件进行测试mailx。愚蠢的是我用过$ while true; do blah blah blah...; 据我所知,它并没有停止运行,因为在我终止进程并删除文件后很长一段时间内我仍然收到电子邮件——至少看起来是这样。
电子邮件流在某个时候突然停止了,但这仅仅是因为我们认为 gmail 放弃了我们的帐户或其他东西。我们定期给自己发送电子邮件,但在过去的几个小时里我们没有收到任何消息。不,垃圾邮件框中也没有任何新内容。
我在清理为 Ubuntu 系统编写的开发人员编写的脚本时遇到过这个问题,以及像这样的 ServerFault 问题。
EL 系统上 psmisc 包的可执行文件中缺少-o、-y(--older-than 和 --younger-than)选项是否有任何原因killall?
我对历史背景很感兴趣,因为我通常不会遇到与为 Ubuntu 开发的脚本/进程的许多重大不兼容问题。然而,这是一个明确的冲突。
假设我有进程 A 产生进程 B,产生进程 C。在什么情况下杀死 A 会杀死整个链(或我猜是树),什么时候不会?我有时发现它确实如此,有时 B 以 ppid 1 结束而 C 未受影响。
这种行为是否因特定的 Linux 内核版本而异?
我需要强制断开给定用户的所有会话。由于这个用户也可能是 root 用户,我认为最好避免在此过程中杀死父 sshd 进程。
有没有便携的方法来做到这一点?