简单的csh实例

本文介绍了一种通过flag文件来检测进程运行状态的方法,包括如何检查flag文件是否存在、设置超时限制以及进行创建或删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过flag文件来检测与否在运行。

可以加入相关关键字的进程的检测。 

 

代码:(简单的csh实例)running_check

#!/bin/csh -f

if ($#argv < 2 ) then
usage:
  echo "Usage: $0 <running_flag> <action> <timeout>"
  echo "action need be one value of -check or -delete."
  echo "default timeout is 0, it means no timeout limitation."
  exit 1
endif

set running_flag = $1
set action = $2
set timeout = 0
if ( "$3" != "") set timeout = $3
if ( "$action" != "-check" && "$action" != "-delete" ) goto usage

# wait until the flag is deleted by ohter processes or timeout.
set waittime = 0
if ("$action" == "-check" && -e $running_flag ) then
  echo "running flag is existed, please wait!"
  set running = 1
  set sleeptime = 60
  while(("$timeout" != "0" && $waittime < $timeout) && $running \
        || "$timeout" == "0" && $running)
    echo "sleep $sleeptime" && sleep $sleeptime
    @ waittime += $sleeptime
    if (! -e $running_flag) set running=0
  end
endif

# timeout, delete the flag.
if ("$timeout" != "0" && "$waittime" >= "$timeout") then
  echo "timeout $timeout"
  echo "delete running flag"
  if ( -e $running_flag) rm $running_flag
endif


# if check, set new flag.
# if delete, delete the flag.

if ( "$action" == "-check" ) then
  echo "touch running flag"
  touch $running_flag
  echo `date` > $running_flag
  ls -l $running_flag
else
  echo "delete running flag"
  if ( -e $running_flag) rm $running_flag
endif
exit 0

 

完! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值