有没有办法杀死多个进程?例如
kill -9 49855 49856
我尝试过使用类似的命令,pkill
但它们需要一个模式并且不允许多个 pid 输入。
我希望在下面的第三个命令中看不到任何内容,但显然我的期望是不正确的。为什么?
$ sudo fuser -v /dev/snd/*
USER PID ACCESS COMMAND
/dev/snd/controlC0: joeuser 2339 F.... pulseaudio
/dev/snd/controlC2: joeuser 2339 F.... pulseaudio
/dev/snd/pcmC0D7p: joeuser 2339 F...m pulseaudio
/dev/snd/pcmC2D0c: joeuser 2339 F...m pulseaudio
/dev/snd/pcmC2D0p: joeuser 2339 F...m pulseaudio
$ kill 2339
$ sudo fuser -v /dev/snd/*
USER PID ACCESS COMMAND
/dev/snd/controlC0: joeuser 2339 F.... pulseaudio
/dev/snd/controlC2: joeuser 2339 F.... pulseaudio
/dev/snd/pcmC0D7p: joeuser 2339 F...m pulseaudio
/dev/snd/pcmC2D0c: joeuser 2339 F...m pulseaudio
/dev/snd/pcmC2D0p: joeuser 2339 F...m pulseaudio
我有一个简短的脚本,它应该启动一个应用程序,等待一个小时,然后杀死它并等待一分钟。它只启动应用程序。我尝试以普通用户和 root 用户身份运行脚本,但没有任何帮助。
while (true); do
./app
sleep 3600
pkill -f app
sleep 60
done
我最近学习了kill -STOP
命令。
我想知道,如果我执行此命令,内存上的数据会发生什么。
例如,如果我kill -STOP
在一个999
占用内存的进程上20 GB
执行操作32 GB
,那么启动一个占用相同内存量的进程是否安全?
如果不安全,有没有办法将内存组件移动到硬盘驱动器,然后再重新加载它们?
服务器有一个正在运行的bash
进程,CPU 使用率为 2200%:
$ ps aux | grep 10986
root 10986 2198 1.8 2483184 2437820 ? Ssl 13:23 962:25 -bash
该进程有 22 个-bash
线程,如图所示htop
。
使用strace
时,父进程保持epoll_pwait()
,子线程保持sched_yield()
。
我尝试过kill -9 10986
,但几分钟后 bash 进程以同样高的 CPU 使用率重新启动。
有人告诉我,几个小时前他曾经screen
运行过一个如下所示的 bash 脚本:
./prog <arg1>
./prog <arg2>
./prog <arg3>
...
但是当他再次登录时,整个目录消失了,并且该过程保持无法杀死。
我在 Ubuntu 18 LTS 系统上并排运行一些任务。所以我通过运行在这些作业之间切换:
# command &
# fg
# fg -
我有时也使用Ctrl+Z将正在运行的作业发送到后台。
假设我的列表中有 3 个工作:
# jobs
[1]+ Stopped nano /etc/nginx/site-available/blog.conf
[2] Stopped top
[3]- Stopped nano script.sh
我可以在这些之间成功切换,但是当我kill
在这些上运行命令时,作业仍然显示在列表中。没有人被杀。为什么?
# kill %1
我再次列出,工作仍然存在:
# jobs
[1]+ Stopped nano /etc/nginx/site-available/blog.conf
[2] Stopped top
[3]- Stopped nano script.sh
PS:我可以用他们的进程ID杀死工作,但为什么不能用kill %1
?
我正在使用以下代码来杀死某个进程的所有 PID,但它没有按预期工作。
pgrep -f <processname>
kill -9 $(pgrep -f <processname>)
当有多个 PID 时,上述行会抛出错误说明:
争论太多。
我学习了一个调试技巧kill -SIGUSR2
它有效但未在手册中定义
me@alpha:~:
$ man kill |grep -i sigusr
me@alpha:~:
有什么问题?