Unix中的重复后台进程

时间:2019-03-29 23:20:37

标签: unix

当包含在Shell脚本中时,我遇到以下代码段的问题。 Shell脚本将从Autosys运行。

它按预期运行,如果一个作业实例已经在运行,则在命令行上使用时返回1。

但是当通过.sh文件(Autosys上的Job)运行相同的脚本时,它将返回2

job_cnt=`ps -ef | grep "/proj/myscript.sh param1" | grep -v "grep" | wc -l`

对于第一拳,它应该在job_cnt变量中返回1,但返回2。

1 个答案:

答案 0 :(得分:2)

由于我没有找到解决此问题的方法,因此我使用了替代解决方案,并且效果很好。

plt.yticks=(np.arange(0, 10))
plt.plot(x,y)

在退出前结束

dummyfile="$data_folder/$lv_autosys_job_nm"_DUMMY.txt
dummydup="$data_folder/$lv_autosys_job_nm"_DUMMY_DUP.txt

    sleep $(( RANDOM % 10 + 10 ))
    cnt=1
    while [ -r $dummyfile ]
    do
      if [ $cnt == 1 ]; then
       /* Code to send an email*/
      cnt=2
        echo "process id:$$"> $dummydup
        chmod 755 $dummydup
      fi

      echo "Duplicate session waiting inside the loop " >> ${LOGFILE}
      sleep 30

    done
    if [ $cnt == 2 ]; then
        rm -f $dummydup
        exit 0
    fi
    echo "process id:$$"> $dummyfile
    chmod 755 $dummyfile

编辑:由于同事帮助我完成了unix脚本编写,我忘了提。他是撰写unix脚本的天才。