当前工作目录为用户主目录,写出完成下述功能的命令序列(1) 查看当前 Linux 系统中全部进程的全部信息。 (2) 执行tail 命令(无选项、无参数),此命令会一直阻塞,另开一个终端窗口通过过滤找出这个阻寒进程的详细信息,根据进程号杀死该进程。
时间: 2024-12-06 18:24:58 浏览: 15
要在当前用户的主目录下,完成这两个功能,你可以按照以下步骤操作:
(1) 查看所有进程的详细信息,可以使用`ps -aux`命令。这个命令会列出系统上所有的运行进程,包括用户、PID、CPU占用率、内存使用情况等。
(2) 要查看`tail`命令的进程ID(PID),可以在另一个终端窗口执行`pgrep tail`,它会返回正在运行的`tail`命令的进程ID。假设结果是`12345`。
接下来,在新打开的终端窗口中,为了防止`tail`命令阻塞,你可以先使用`kill -0 12345 &> /dev/null`,这会发送一个空信号给进程,不会实际停止它,但能获取到进程PID(如果进程存在)。然后使用`pgrep tail`再次确认PID是否匹配。
最后,用`kill -9 <PID>` 来终止进程,`-9` 表示强制结束(SIGKILL),确保进程立即停止。这里需要将 `<PID>` 替换成实际的进程ID。
如果你想要跟踪整个过程,可以尝试合并以上命令,例如在一个终端里依次输入:
```bash
# 查看所有进程详细信息
ps -aux
# 获取tail命令的PID
pid_of_tail=$(pgrep tail)
# 检查pid_of_tail是否有效
if [ ! -z "$pid_of_tail" ]; then
# 发送空信号并记录日志(忽略结果)
kill -0 $pid_of_tail &> /dev/null
# 再次检查PID是否匹配
pid_of_tail=$(pgrep tail)
# 如果PID仍然存在,强制结束进程
if [ ! -z "$pid_of_tail" ]; then
kill -9 $pid_of_tail
fi
fi
```
记得根据实际情况调整上述命令中的变量。完成之后,可以用`jobs`命令检查是否有未完成的任务。
阅读全文