1. 需求
给定任务名称,杀死所有该任务的Linux进程
2. 步骤
- 上传附录
killtask
脚本到本地服务器 - 编辑
~/.bashrc
,加入
[email protected] ~/ouyangyewei/scripts$ cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias killtask='sh /home/map/workspaces/bin/killtask'
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 执行
source ~/.bashrc
使其立即生效
3. 使用说明
[email protected] ~/ouyangyewei/scripts$ killtask
==> ERROR: Usage: killtask <task_name>
[email protected] ~/ouyangyewei/scripts$ killtask add_one
==> Linux process about add_one are not exist.
[email protected] ~/ouyangyewei/scripts$ nohup sh loop_plus_one.sh &
[1] 28892
[email protected] ~/ouyangyewei/scripts$ nohup: appending output to ‘nohup.out’
[email protected] ~/ouyangyewei/scripts$ ps -ef | grep loop_plus_one | grep -v grep
map 28892 26740 99 14:38 pts/3 00:00:27 sh loop_plus_one.sh
[email protected] ~/ouyangyewei/scripts$ killtask loop_plus_one
==> ps -ef | grep loop_plus_one | grep -v grep | grep -v /home/map/workspaces/bin/killtask
==> -----------------
-> map 28892 26740 99 14:38 pts/3 00:00:36 sh loop_plus_one.sh
==> -----------------
==> Kill All Linux Process About loop_plus_one Finished...
[1]+ 已杀死 nohup sh loop_plus_one.sh
[email protected] ~/ouyangyewei/scripts$ ps -ef | grep loop_plus_one | grep -v grep
[email protected] ~/ouyangyewei/scripts$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
4. 附录
killtask
脚本:
#!/bin/bash
##########################################
# Author: ouyangyewei
# Desc: 杀死指定任务名称的进程
# Usage: killtask <task_name>
# Date: 2016-04-27
##########################################
# colour macros
if [[ -t 1 ]]; then
NORMAL="$( echo -e "\e[0m" )"
HL_RED="$( echo -e "\e[31;1m" )"
HL_GREEN="$( echo -e "\e[32;1m" )"
HL_BLUE="$( echo -e "\e[34;1m" )"
fi
_hl_red() { echo "$HL_RED""$@""$NORMAL";}
_hl_green() { echo "$HL_GREEN""$@""$NORMAL";}
_hl_blue() { echo "$HL_BLUE""$@""$NORMAL";}
# helper functions
_trace() {
echo $(_hl_blue ' ->') "$@" >&2
}
_notice() {
echo $(_hl_green '==>') "$@" >&2
}
_fatal() {
echo $(_hl_red '==> ERROR:') "$@" >&2
exit 1
}
# ---------------------------------------------------------
if [[ $# -ne 1 ]]; then
_fatal "Usage: killtask <task_name>"
fi
# check if linux process about <task_name> exist
process=`ps -ef | grep $@ | grep -v grep | grep -v $0`
if [[ -z "$process" ]]; then
_notice "Linux process about $@ are not exist."
exit 1
fi
# show all linux process about <task_name>
_notice "ps -ef | grep $@ | grep -v grep | grep -v $0"
_notice "-----------------"
ps -ef | grep $@ | grep -v grep | grep -v $0 | while read process
do
_trace "${process}"
done
# then kill all linux process about <task_name>
ps -ef | grep $@ | grep -v grep | grep -v $0 | awk '{print $2}' | xargs kill -9
_notice "-----------------"
_notice "Kill All Linux Process About $@ Finished..."
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 顶
- 1
1. 需求
给定任务名称,杀死所有该任务的Linux进程
2. 步骤
- 上传附录
killtask
脚本到本地服务器 - 编辑
~/.bashrc
,加入
[email protected] ~/ouyangyewei/scripts$ cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias killtask='sh /home/map/workspaces/bin/killtask'
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 执行
source ~/.bashrc
使其立即生效
3. 使用说明
[email protected] ~/ouyangyewei/scripts$ killtask
==> ERROR: Usage: killtask <task_name>
[email protected] ~/ouyangyewei/scripts$ killtask add_one
==> Linux process about add_one are not exist.
[email protected] ~/ouyangyewei/scripts$ nohup sh loop_plus_one.sh &
[1] 28892
[email protected] ~/ouyangyewei/scripts$ nohup: appending output to ‘nohup.out’
[email protected] ~/ouyangyewei/scripts$ ps -ef | grep loop_plus_one | grep -v grep
map 28892 26740 99 14:38 pts/3 00:00:27 sh loop_plus_one.sh
[email protected] ~/ouyangyewei/scripts$ killtask loop_plus_one
==> ps -ef | grep loop_plus_one | grep -v grep | grep -v /home/map/workspaces/bin/killtask
==> -----------------
-> map 28892 26740 99 14:38 pts/3 00:00:36 sh loop_plus_one.sh
==> -----------------
==> Kill All Linux Process About loop_plus_one Finished...
[1]+ 已杀死 nohup sh loop_plus_one.sh
[email protected] ~/ouyangyewei/scripts$ ps -ef | grep loop_plus_one | grep -v grep
[email protected] ~/ouyangyewei/scripts$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
4. 附录
killtask
脚本:
#!/bin/bash
##########################################
# Author: ouyangyewei
# Desc: 杀死指定任务名称的进程
# Usage: killtask <task_name>
# Date: 2016-04-27
##########################################
# colour macros
if [[ -t 1 ]]; then
NORMAL="$( echo -e "\e[0m" )"
HL_RED="$( echo -e "\e[31;1m" )"
HL_GREEN="$( echo -e "\e[32;1m" )"
HL_BLUE="$( echo -e "\e[34;1m" )"
fi
_hl_red() { echo "$HL_RED""$@""$NORMAL";}
_hl_green() { echo "$HL_GREEN""$@""$NORMAL";}
_hl_blue() { echo "$HL_BLUE""$@""$NORMAL";}
# helper functions
_trace() {
echo $(_hl_blue ' ->') "$@" >&2
}
_notice() {
echo $(_hl_green '==>') "$@" >&2
}
_fatal() {
echo $(_hl_red '==> ERROR:') "$@" >&2
exit 1
}
# ---------------------------------------------------------
if [[ $# -ne 1 ]]; then
_fatal "Usage: killtask <task_name>"
fi
# check if linux process about <task_name> exist
process=`ps -ef | grep $@ | grep -v grep | grep -v $0`
if [[ -z "$process" ]]; then
_notice "Linux process about $@ are not exist."
exit 1
fi
# show all linux process about <task_name>
_notice "ps -ef | grep $@ | grep -v grep | grep -v $0"
_notice "-----------------"
ps -ef | grep $@ | grep -v grep | grep -v $0 | while read process
do
_trace "${process}"
done
# then kill all linux process about <task_name>
ps -ef | grep $@ | grep -v grep | grep -v $0 | awk '{print $2}' | xargs kill -9
_notice "-----------------"
_notice "Kill All Linux Process About $@ Finished..."
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59