centos查看进程及结束掉

本文介绍了如何使用ps命令的ps-elf选项来查看进程详细信息,以及通过grep过滤特定进程。同时,讲解了kill命令用于终止进程的基本用法,包括在进程不响应时使用-9选项强制终止。此外,还提到了killall和pkill命令,它们可以根据进程名称或特定条件终止进程。这些工具对于系统管理和故障排查至关重要。

使用ps命令来查看进程

ps命令——查看静态的进程统计信息(一般结合选项使用 ps aux 或 ps -elf 命令)

建议使用 ps -elf 查询,输出的信息更详细些,包括 PPID (对应的父进程 的PID 号)

ps -elf | grep -i s997

ps aux | grep -i s997

kill 12677 如果无法响应终止信号,使用下面命令

kill -9 12677

终止进程执行

使用 kill 命令终止进程的命令格式: kill PID号 如果无法响应终止信号,可以结合 -9 选项: kill -9 PID号(-9表示强制终止进程,但强制终止会导致程序运行的部分数据丢失,应谨慎使用)

使用 killall 命令终止进程的命令格式:killall 进程名(如 “killall vim”,也可以结合 -9 选项,强制终止,选项格式与kill命令格式一致)

使用 pkill 命令终止进程:可以根据进程的名称,运行该进程的用户,进程所在的终端等多种属性终止特定的进程命令格式与pgrep格式大致相同,也可以加 -9 选项,如:

pkill -9 -U “用户名” -t 指定终端

https://www.youkuaiyun.com/tags/MtzaIgxsMDQxNzEtYmxvZwO0O0OO0O0O.html

### 查看结束进程的方法 在 CentOS 中,可以使用多种命令来查看结束进程。以下是详细的说明: #### 查看进程的命令 `ps` 是最常用的查看进程状态的命令之一。通过不同的选项组合,它可以提供丰富的信息。 - 使用 `ps -ef` 可以列出系统中的所有进程及其详细信息[^2]。 ```bash ps -ef ``` - 如果只想查看某个特定的服务进程,比如 Java 或 SSHD,则可以通过管道符结合 `grep` 来过滤结果: ```bash ps -ef | grep java ``` 这会返回包含关键字 “java” 的所有进程列表。 为了防止误匹配到 `grep` 自身作为进程的情况,还可以增加额外的一层过滤: ```bash ps -ef | grep sshd | grep -v grep ``` 统计某类进程的数量也很简单,只需附加 `-c` 参数给最后的 `grep` 即可得到计数值: ```bash ps -ef | grep java -c ``` 另一种更直观的方式是利用 `top` 实时监控系统的运行状况并按需排序展示资源消耗最高的那些活动项。按下 `shift+m` 键可以让其依据内存占用量重新排列显示顺序[^5]: ```bash top ``` #### 终止进程的命令 当确定要停止某些不必要的或者异常的任务时,“kill” 就派上了用场。“kill”的基本形式只需要知道目标PID(进程ID),如下所示例子中分别单独杀死编号为4682的一个实例以及同时清理另外三个指定号码所对应的多个对象[^4]: 单个进程终止: ```bash kill 4682 ``` 批量处理几个不同id号下的线程组成员们一起被消灭: ```bash kill 4682 7492 8810 2314 ``` 如果标准信号无法成功关闭顽固型应用程序的话,那么强制模式就显得尤为重要起来了——即发送SIGKILL信号(-9参数)过去强行中断它们的工作流程直至完全退出为止: ```bash kill -9 4682 ``` 还有专门针对名字相同的整个家族群体成员无差别攻击手段叫做“killall”,它能够根据确切的名字快速定位关联起来的所有相关实体然后统一处置之: ```bash killall httpd ``` 对于一些后台长期挂起不响应前台指令操作的应用场景而言,可能需要用到更加高级一点的技术方案比如说借助于“systemctl stop service_name.service”这样的方式来进行优雅地降级关停动作;或者是采用“NoHUP ./application &>/dev/null & ”这样特殊的调用方法让程序无视SIGHUP信号继续存活下去直到人为干预才会消失不见踪影[^3]. ### 示例代码片段 下面给出一段综合运用上述知识点的小脚本用于演示目的: ```bash #!/bin/bash # 获取名为 'myapp' 的所有进程 ID 并存入数组变量 pids[] mapfile -t pids < <(ps aux | grep '[m]yapp' | awk '{print $2}') if [[ ${#pids[@]} -eq 0 ]]; then echo "No running processes found." else for pid in "${pids[@]}"; do echo "Terminating process with PID=$pid ..." kill "$pid" sleep 1 if ! ps -p "$pid" > /dev/null ;then echo "Process $pid has been successfully terminated!" else echo "Failed to terminate normally, trying forcefully..." kill -9 "$pid" if ! ps -p "$pid" > /dev/null ;then echo "Forcefully terminated process $pid." fi fi done fi ``` 此脚本首先寻找名称类似于'myapp'的所有正在执行中的子进程并将各自的唯一标识符收集起来逐一尝试正常途径先礼后兵逐步升级策略最终达成彻底清除的目的. ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值