使用shell脚本控制一次性同时运行多个rtkrcv程序

一、更改b34版本中rtkrcv -s命令行参数bug

b34版本的rtkrcv在使用 -s 命令行参数时会出现段错误,导致无法程序正常运行。错误如下:

在demo5版本的rtkrcv中可以正常使用,首先需要对照demo5中的rtkrcv.c代码,更改b34中rtkrcv.c对于-s命令行参数的处理。

二、使用shell一次性运行多个rtkrcv程序,来进行24h的实时PPP定位

#!/bin/bash

# 设置运行时间,单位为秒
runtime=86400

# 定义rtkrcv程序路径
rtkrcv_path="/root/zf2_conapp/app/consapp/rtkrcv/gcc/rtkrcv"

# 定义配置文件路径
config_file_path="/root/mutitest/config"

# 定义运行的rtkrcv程序数目
num_rtkrcv=22

# 启动指定数量的rtkrcv程序
for ((i=1; i<=num_rtkrcv; i++)); do
    # 构建配置文件完整路径
    config_file="$config_file_path/config$i.conf"
    
    # 启动rtkrcv程序并将日志输出到不同的文件中
    $rtkrcv_path -s -o $config_file > "rtkrcv_log$i.txt" 2>&1 &
	
	# 获取rtkrcv程序的进程ID
    rtkrcv_pid=$!

    # 显示启动信息
    echo "启动rtkrcv程序 $i,进程ID: $rtkrcv_pid"
done

# 获取当前时间戳
start_time=$(date +%s)

# 主循环,检查运行时间是否超过设定值
while true; do
    # 获取当前时间戳
    current_time=$(date +%s)

    # 计算已经运行的时间
    elapsed_time=$((current_time - start_time))

    # 判断是否已经达到设定的运行时间
    if [[ $elapsed_time -ge $runtime ]]; then
        echo "达到设定的运行时间,关闭所有的rtkrcv进程"
        pkill rtkrcv
        exit
    fi

    # 显示运行信息
    echo "已运行时间:$elapsed_time 秒"

    # 等待一段时间后继续循环(这里设置为1分钟,可以根据需要调整)
    sleep 60
done

更改配置文件路径中不同.conf文件中输入的ntrip挂载点,同时进行多个测站的实时PPP定位。

程序运行结束时截图

 

三、希望大佬指点

目前这种方式确实有点愚蠢......但是在我白嫖的2核2G的阿里云服务器上运行还算正常。 希望大佬们多指教。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值