1 利用pgrep 匹配名字 以下是补充内容: 当前系统中的进程: apple@ubuntu:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 : ? :: /sbin/init root 2 0 0 : ? :: [kthreadd] root 3 2 0 : ? :: [migration/0] root 4 2 0 : ? :: [ksoftirqd/0] root 5 2 0 : ? :: [watchdog/0] root 6 2 0 : ? :: [migration/1] root 7 2 0 : ? :: [ksoftirqd/1] root 8 2 0 : ? :: [watchdog/1] root 9 2 0 : ? :: [events/0] root 2 0 : ? :: [events/1] root 2 0 : ? :: [khelper] root 2 0 : ? :: [kstop/0] root 2 0 : ? :: [kstop/1] root 2 0 : ? :: [kintegrityd/0] root 2 0 : ? :: [kintegrityd/1] root 2 0 : ? :: [kblockd/0] root 2 0 : ? :: [kblockd/1] root 2 0 : ? :: [kacpid] root 2 0 : ? :: [kacpi_notify] root 2 0 : ? :: [cqueue] root 2 0 : ? :: [ata/0] root 2 0 : ? :: [ata/1] root 2 0 : ? :: [ata_aux] root 2 0 : ? :: [ksuspend_usbd] root 2 0 : ? :: [khubd] root 2 0 : ? :: [kseriod] root 2 0 : ? :: [kmmcd] root 2 0 : ? :: [btaddconn] root 2 0 : ? :: [btdelconn] root 2 0 : ? :: [pdflush] root 2 0 : ? :: [pdflush] root 2 0 : ? :: [kswapd0] root 2 0 : ? :: [aio/0] root 2 0 : ? :: [aio/1] root 2 0 : ? :: [ecryptfs-kthrea] root 2 0 : ? :: [pciehpd] root 2 0 : ? :: [scsi_eh_0] root 2 0 : ? :: [scsi_eh_1] root 2 0 : ? :: [kstriped] root 2 0 : ? :: [kmpathd/0] root 2 0 : ? :: [kmpathd/1] root 2 0 : ? :: [kmpath_handlerd] root 2 0 : ? :: [ksnapd] root 2 0 : ? :: [kondemand/0] root 2 0 : ? :: [kondemand/1] root 2 0 : ? :: [krfcommd] root 2 0 : ? :: [mpt_poll_0] root 2 0 : ? :: [scsi_eh_2] root 2 0 : ? :: [kdmflush] root 2 0 : ? :: [kdmflush] root 2 0 : ? :: [kjournald] root 1 0 : ? :: /sbin/udevd --daemon root 2 0 : ? :: [kpsmoused] root 1 0 : tty4 :: /sbin/getty tty4 root 1 0 : tty5 :: /sbin/getty tty5 root 1 0 : tty2 :: /sbin/getty tty2 root 1 0 : tty3 :: /sbin/getty tty3 root 1 0 : tty6 :: /sbin/getty tty6 root 1 0 : ? :: /usr/sbin/acpid -c /etc/acpi/eve root 1 0 : ? :: /usr/sbin/syslog-ng -p /var/run/ 1 0 : ? :: /bin/dbus-daemon --system root 1 0 : ? :: /usr/sbin/incrond -f /etc/incron root 1 0 : ? :: dhclient3 -e IF_METRIC= -pf / root 1 0 : ? :: /usr/sbin/sshd root 1 0 : ? :: /usr/lib/postfix/master postfix 0 : ? :: pickup -l -t fifo -u -c postfix 0 : ? :: qmgr -l -t fifo -u 1 0 : ? :: /usr/sbin/hald root 1 0 : ? :: /usr/sbin/console-kit-daemon root 0 : ? :: hald-runner root 0 : ? :: hald-addon-input: Listening on / root 0 : ? :: hald-addon-storage: polling /dev root 0 : ? :: hald-addon-storage: no polling o 0 : ? :: hald-addon-acpi: listening on ac daemon 1 0 : ? :: /usr/sbin/atd root 1 0 : ? :: /usr/sbin/cron root 1 0 : tty1 :: /sbin/getty tty1 root 0 : ? :: sshd: apple [priv] apple 0 : ? :: sshd: apple@pts/0 apple 1 : pts/0 :: -bash apple 0 : pts/0 :: ps -ef apple@ubuntu:~$ 1.ps -p ps -p 根据给定的pid参数判断是否有这个进程,如果有这个进程正常退出,退出值0.如果没有这个进程异常退出,退出值1. 例如: apple@ubuntu:~$ ps -p PID TTY TIME CMD ? :: sshd apple@ubuntu:~$ echo $? 0 apple@ubuntu:~$ ps -p PID TTY TIME CMD apple@ubuntu:~$ echo $? 1 apple@ubuntu:~$ 2.pgrep pgrep根据给出的进程名判断是否有这个名字的进程。如果有这个名字的进程正常退出,退出值0.如果没有这个名字的进程异常退出,退出值1. 例如: apple@ubuntu:~$ pgrep sshd apple@ubuntu:~$ echo $? 0 apple@ubuntu:~$ pgrep sshddd apple@ubuntu:~$ echo $? 1 apple@ubuntu:~$ 3./proc 每个进程都会在/proc下有一个以进程PID命名的目录。 例如: apple@ubuntu:~$ ls /proc/ ls: cannot read symbolic link /proc//cwd: Permission denied ls: cannot read symbolic link /proc//root: Permission denied ls: cannot read symbolic link /proc//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个事实,编写脚本。其他的脚本类似。
推荐整理分享Linux Shell中判断进程是否存在的代码(Linux Shell中判断进程是否存在的方法),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:linux shell 判断变量是否为空,linux shell 判断变量是否为空,linux shell条件判断语句,Linux Shell中判断进程是否存在的方法,shell命令判断,linux shell 判断变量是否为空,linux shell 判断,linux shell 判断,内容如对您有帮助,希望把文章链接给更多的朋友!
Linux下Oracle归档日志自动清理脚本代码(sh) #!/bin/shexportBACK_DATE=`date+%Y%m%d`exportBACKUP_PATH=/home/oracle/dbbakecho`mkdir-p${BACKUP_PATH}/archivelog/${BACK_DATE}`rmanmsglog=$BACKUP_PATH/archivelog/${BACK_DATE}/arch_0_$BACK_DATE.logEOFcon
shell grep 查找进程的小技巧 大部分人在写Shell过滤进程的时候都会使用grep在psaux的输出结果中查找指定的进程,但此时也会把grep进程也显示出来比如查找pptpd进程,会匹配出来两条
Linux BASH多进程并行处理的方法实现 #!/bin/bashSEND_THREAD_NUM=tmp_fifofile="/tmp/$$.fifo"#脚本运行的当前进程ID号作为文件名mkfifo$tmp_fifofile"#新建一个随机fifo管道文件exec6"$tmp_fifofile"#定义文件描述