Linux终止进程

From: http://www.linuxeden.com/html/develop/20090702/66531.html

 

bash判断进程存在的3种方法

1、ps -p
ps -p 根据给定的pid参数判断是否有这个进程。
如果有这个进程正常退出,退出值0;
如果没有这个进程异常退出,退出值1。
apple@ubuntu:~$ ps -p 2442
  PID TTY          TIME CMD
 2442 ?        00:00:00 sshd
apple@ubuntu:~$ echo $?
0
apple@ubuntu:~$ ps -p 1234
  PID TTY          TIME CMD
apple@ubuntu:~$ echo $?
1
2、pgrep
pgrep根据给出的进程名判断是否有这个名字的进程。
如果有这个名字的进程正常退出,退出值0;
如果没有这个名字的进程异常退出,退出值1.
例如:
apple@ubuntu:~$ pgrep sshd
2442
2994
3003
apple@ubuntu:~$ echo $?
0
apple@ubuntu:~$ pgrep sshddd
apple@ubuntu:~$ echo $?
1
apple@ubuntu:~$
3、/proc
每个进程都会在/proc下有一个以进程PID命名的目录。
例如:
apple@ubuntu:~$ ls /proc/2442
ls: cannot read symbolic link /proc/2442/cwd: Permission denied
ls: cannot read symbolic link /proc/2442/root: Permission denied
ls: cannot read symbolic link /proc/2442/exe: Permission denied
attr    clear_refs       cpuset   exe     io       loginuid  mountinfo   net        pagemap      sched      smaps  status   wchan
auxv    cmdline          cwd      fd      latency  maps      mounts      oom_adj    personality  schedstat  stat   syscall
cgroup  coredump_filter  environ  fdinfo  limits   mem       mountstats  oom_score  root         sessionid  statm  task
apple@ubuntu:~$
可以根据上面的事实,编写bash脚本判断一个进程是否存在。下面以第3个事实,编写脚本。其他的脚本类似。
#!/bin/bash
if [ -z $1 ] 
then
    echo "Need a pid argument"
    exit 1
fi
if [ -d /proc/$1 ];then
    exit 0
else
    exit 1
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值