Chinaunix

标题: 关于程序自动重启 [打印本页]

作者: huangbt_unix    时间: 2009-02-10 09:22
标题: 关于程序自动重启
在我们生产机上,有一个shell,用于在程序退出出自动重启,如下:
#!/bin/sh
. ~/.profile

ps -ef | grep "insdb -s2 -a -p1" |grep -v "grep" |grep -v "run_insdb" | awk '{print $2"\t" $9}'>/tmp/insdb.$$

if [ ! -s /tmp/insdb.$$ ]; then
   cd /home1/psett/bin_newc
   echo "Start processes insdb:"`date +"%C%y%m%d%H%M%S"` >> run_insdb.log
   nohup /home1/psett/bin_newc/insdb -s2 -a -p1>/dev/null&
   rm /tmp/insdb*
else
   cd /home1/psett/bin_newc
   echo "processes insdb are running:"`date +"%C%y%m%d%H%M%S"`>> run_insdb.log
fi

我有点看不懂了,请教各位高手几个问题一下:
1)>/tmp/insdb.$$p这两个$符是什么意思
2)if [ ! -s /tmp/insdb.$$ ]; 这是什么意思,这个是根据什么判断程序是否已经启动的呢?
先谢谢大家!
作者: huangbt_unix    时间: 2009-02-10 09:23
对了,顺便问一下,开头的. ~/.profile是什么意思啊?
问题有点多,哈哈!
作者: ly5066113    时间: 2009-02-10 09:24
标题: 回复 #1 huangbt_unix 的帖子
看遍十三问,你的问题基本就没有了。

http://bbs2.chinaunix.net/thread-218853-1-1.html
作者: 我是DBA    时间: 2009-02-10 09:35
在我们生产机上,有一个shell,用于在程序退出出自动重启,如下:
#!/bin/sh
. ~/.profile

ps -ef | grep "insdb -s2 -a -p1" |grep -v "grep" |grep -v "run_insdb" | awk '{print $2"\t" $9}'>/tmp/insdb.$$
#这个就是判断程序的进程是否有存在,有存在的话,会把相关信息写入到/tmp/insdb.$$
$$表示父进程的pid


if [ ! -s /tmp/insdb.$$ ]; then
#-s  表示/tmp/insdb.$$文件存在并且文件大小大于0
加了一个!表示相反的意思。就是表示文件大小为0,那么进程不存在,进行重启操作。

   cd /home1/psett/bin_newc
   echo "Start processes insdb:"`date +"%C%y%m%d%H%M%S"` >> run_insdb.log
   nohup /home1/psett/bin_newc/insdb -s2 -a -p1>/dev/null&
   rm /tmp/insdb*
else
   cd /home1/psett/bin_newc
   echo "processes insdb are running:"`date +"%C%y%m%d%H%M%S"`>> run_insdb.log
fi
作者: 飞鸿无痕    时间: 2009-02-10 09:37
$$    脚本自身的进程ID.
if [ ! -s /tmp/insdb.$$ ];这个是表示/tmp/insdb.$$文件是否不存在!(-s是表示判断文件是否存在并且文件大小大于0)
至于这个~/.profile,你用cd ~在shell上试下就明白了,呵呵!

[ 本帖最后由 飞鸿无痕 于 2009-2-10 09:43 编辑 ]
作者: ynchnluiti    时间: 2009-02-10 09:38
原帖由 ly5066113 于 2009-2-10 09:24 发表
看遍十三问,你的问题基本就没有了。

http://bbs2.chinaunix.net/thread-218853-1-1.html

支持楼主系统的学习下
作者: beginner-bj    时间: 2009-02-10 09:49
ps 一次
echo $$ 两次

一看就明白了
作者: infernor    时间: 2009-02-10 10:12
原帖由 ly5066113 于 2009-2-10 09:24 发表
看遍十三问,你的问题基本就没有了。

http://bbs2.chinaunix.net/thread-218853-1-1.html

的确,还是先系统的看下要好些
作者: haimming    时间: 2009-02-10 10:29
这个问题就值20分了,LZ太大方了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2