一段通过grep自定义选择执行程序并kill的脚本

Shell脚本批量终止进程

一段通过关键字过滤并选择相应的进程kill的shell函数

killprog(){
    n=0
    # echo -e "$n) nothing"
    ps -ef | grep $1 | grep -v grep | grep -v $$ | grep -v tail | grep -v vi > /tmp/ddc.txt
    while read line
    do
        n=$(($n+1))
        pid=`echo $line | cut -d " " -f 2`
        pwdx=`pwdx $pid | cut -d " " -f 2-`
        prog=`echo $line | cut -d " " -f 8-`
        arr[n]="$pid : $pwdx > $prog"
        if [ "$pwdx" = "$2" ]; then
            echo "$n ${arr[n]}"
        else
            echo "$n) ${arr[n]}"
        fi
    done < /tmp/ddc.txt
    if [ $n -gt 0 ]; then
        echo -n "#? "
        read index
        if test "$index" ; then
            for var in ${index[@]};
            do
                if [ $var -ne 0 ] ; then
                    if [ $var -le $n ] ; then
                        pid=`echo ${arr[var]} | cut -d " " -f 1`
                        kill -9 $pid
                    else
                        echo "error index $var"
                        exit 1
                    fi
                fi
            done
        fi
    fi
}

使用时可以一次选择多个同时kill

### 如何通过命令行终止 Python 程序的执行 在命令行环境中,可以通过多种方式来终止正在运行的 Python 程序。以下是几种常见的方法: #### 1. 使用键盘中断信号 (Ctrl+C) 当一个 Python 脚本在命令行中运行时,用户可以直接按下 `Ctrl+C` 来发送一个中断信号给程序。这将触发 Python 的内置异常 `KeyboardInterrupt` 停止脚本的执行[^1]。 #### 2. 使用操作系统命令强制终止进程 如果需要更彻底地结束某个特定的 Python 进程,可以在另一个终端窗口中查找杀死该进程。例如,在 Linux 或 macOS 上可以使用以下命令: ```bash ps aux | grep python ``` 找到目标进程 ID 后,使用 `kill` 命令终止它: ```bash kill -9 <PID> ``` 对于 Windows 用户,则可借助任务管理器或者 PowerShell 中的 `Stop-Process` cmdlet 实现相同效果[^4]。 #### 3. 编写代码支持优雅退出机制 为了使程序能够响应外部指令而安全地中止操作,开发者应在设计阶段考虑加入相应的逻辑处理部分。比如利用多线程或多进程模块中的事件标志位通知子进程停止工作;又或者是监听标准输入流等待特定字符串作为关闭信号等等[^2]。 另外还有一种简单的方法就是设置超时时间让长期未完成的任务自动放弃继续尝试下去的机会从而达到保护资源的目的同时也避免了无限循环带来的麻烦情况发生。 ```python import signal import sys def handler(signum, frame): print("Time's up! Exiting...") sys.exit(0) signal.signal(signal.SIGALRM, handler) signal.alarm(10) # 设置闹钟时间为10秒后触发handler函数 try: while True: pass except KeyboardInterrupt: print("\nExiting due to manual interruption.") ``` 上述例子展示了如何定义一个自定义信号处理器用于检测到SIGALRM信号时就立即退出应用程序实例[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值