Linux 停止当前正在运行程序

这篇博客介绍了如何在Linux环境下终止一个正在运行的程序。首先,通过终端执行shell命令`ps -e | grep 'test' | awk '{print $1}'`找到目标进程的PID(这里以进程名为'test'为例),然后使用`kill -9 PID`来强制结束该进程,其中PID是进程的ID号。

1、终端执行shell命令

得到进程PID
ps -e | grep ‘test’ | awk ‘{print $1}’
12478
其中test为进程名
杀进程
kill -9 12478

2、代码

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    void stop()
    {
        FILE *fp = popen("ps -e | grep \'test\' | awk \'{print $1}\'", "r");
        char buffer[10] = {0};

        while(NULL != fgets(buffer, 10, fp))
        {
                printf("PID: %s\n", buffer);
                char command[1024] = "kill -9 ";
                strcat(command, buffer);
                popen(command, "r");
        }

        pclose(fp);

    }
### Linux停止正在运行程序的方法 在 Linux 系统中,可以通过多种方式来停止正在运行程序。以下是几种常见的方法: #### 使用 `ps` 和 `kill` 命令组合 要停止一个特定的 Java 程序,可以先通过 `ps` 命令查找其进程 ID (PID),再利用 `kill` 命令终止该进程。这种方法适用于任何类型的后台运行程序[^1]。 ```bash # 查找目标程序对应的 PID ps aux | grep java # 杀死指定 PID 的进程 kill -9 <PID> ``` 如果需要自动化这一过程,则可编写脚本实现批量处理。例如,在 C 语言中调用系统函数完成此操作也是一个可行的选择[^4]。 #### 利用 Ctrl+C 终止前台任务 对于那些处于交互模式下启动的应用来说(比如直接输入命令行参数执行),最简单粗暴的办法莫过于按下键盘上的 **Ctrl + C** 键合了。这将向当前终端发送 SIGINT 信号从而优雅地中止作业而不会造成数据丢失等问题发生[^5]。 不过需要注意的是,某些情况下即使按下了上述快捷键也无法立即生效——可能是因为应用程序本身捕获并忽略了这个中断请求;或者是它正处于等待I/O资源可用的状态之中等等原因所致。 另外值得注意的一点就是当您希望远程连接服务器并通过SSH客户端来进行此类管理动作时,请务必确认已经正确配置好了相应的权限设置以免遇到不必要的麻烦哦! #### 将程序放入后台后再控制 有时候我们可能会忘记把长时间运算的任务放到后台去跑而导致一直占用着我们的工作环境界面。此时除了强行断开链接外还有更好的解决办法吗? 当然有啦! 只需简单的几个按键就能轻松搞定这一切: - 首先按下 `Ctrl+Z`, 这会让活动中的进程挂起(suspend). - 接下来我们可以使用 `bg` 命令让刚才被暂停下来的进程继续以前台形式运作但不再阻塞其他指令. 最后记得给它分配一个新的session id以便日后查询方便:`disown %jobnumber`. 如此一来即便退出登录也不会影响到它的正常运转咯~ 同样道理也可以反过来重新获取之前丢弃掉的那个session里的东西呢! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值