ps h -fwC做什么?

时间:2013-08-08 16:19:56

标签: linux shell process command

我如何理解脚本的这一部分?调用ps h -fwC ifmFuseHandler给出了这个输出:

DRBimg:/tmp # ps h -fwC ifmFuseHandler
insite1  29149     1  0 11:57 ?        Ssl    0:00 ifmFuseHandler -o allow_other /opt/insiteone/fuse-mount

我对ifmFuseHandler启动的条件特别感兴趣?

这是完整的脚本(一些摘录形式):

 # START IFM
        if [ $MYTYPE = "ifmFuseHandler" -o $MYTYPE = "ALL" ]
        then
            # IF A PROXY
            if [ $PROXY -eq 0 -a $DOIFM -eq 1 ]
            then
                # Make sure the fuse module is loaded
                FUSE=`lsmod | grep fuse`
                ret=$?
                if [ $ret -ne 0 ]
                then
                        /sbin/modprobe fuse 2>/dev/null
                fi
                FOUND=1
                #PID=`df | awk '/ifmFuseHandler/ {print $1}'`
                #PID=`ps -ef | grep -v 'awk' | awk '/ifmFuseHandler/ { print$2 }'`
                PID=`ps h -fwC ifmFuseHandler | awk '/ifmFuseHandler/ { print$2 }'`
                if [ "x$PID" = x ]; then
                    msg "Starting ifmFuseHandler..." $MSG_ALL
                    su - $USER -c "cd $DIR_INDEX;ifmFuseHandler  $IFM_SINGLE_THREAD -o allow_other $IFM_MOUNT"
                else
                    msg "ifmFuseHandler already running! PID=$PID" $MSG_ALL
                fi
            fi
        fi

2 个答案:

答案 0 :(得分:1)

它只是使用ps的-C选项。比较

ps h -fwC ifmFuseHandler

ps h -fw

在一个shell中。

答案 1 :(得分:1)

PID=`ps h -fwC ifmFuseHandler | awk '/ifmFuseHandler/ { print$2 }'`

为您提供ifmFuseHandler的PID

if [ "x$PID" = x ]; then

测试是否返回PID;如果没有,则启动ifmFuseHandler,否则打印出已经运行的消息

我自己,我会跑

PID = `ps -el|grep -v grep|grep ifmFuseHandler|awk '{print $2}'`