如何从另一个脚本中杀死正在运行的脚本?

时间:2019-05-08 09:39:58

标签: linux bash shell debian sh

我有一个a.sh脚本,它在Debian机器中在后台用命令列表执行无限循环,我想使用另一个脚本b.sh以a.sh结尾。据我了解,pkill -f a.sh是一种实现方式,但我想知道是否还有另一种实现方式

2 个答案:

答案 0 :(得分:0)

man -k kill显示了许多杀死进程的命令。请注意(1)(常规命令)和(8)(管理命令)。在我的系统上,我得到了(手动过滤):

killproc (8)         - Send signals to processes by full path name
docker-container-kill (1) - Kill one or more running containers
docker-kill (1)      - Kill one or more running containers
kill (1)             - terminate a process
killall (1)          - kill processes by name
killall5 (8)         - send a signal to all processes.
pkill (1)            - look up or signal processes based on name and other attributes
skill (1)            - send a signal or report process status

答案 1 :(得分:0)

如果从b.sh运行a.sh,则可以获得a.sh的进程ID

b.sh

    a.sh &          # Execute a.sh in the background
    APID=$!         # $APID is now the pid of a.sh

    #do some stuff or wait

    kill -SIGTERM $APID          # Give the process a chance to shut down
    kill -SIGKILL $APID          # Certain kill

这样,如果您有多个并发,则可以杀死a.sh的特定实例 实例。