起进程加载动态链接库冲突解决方案

在进行压力测试时,同一容器内的进程加载相同动态链接库可能导致冲突。解决方案包括通过bash脚本循环启动进程,并利用&实现守护进程效果。在脚本中,可以使用$?检查命令执行状态,set -o pipefail关注管道命令成功率,set -u避免使用未定义变量,set -e确保命令失败时脚本能正确退出。
摘要由CSDN通过智能技术生成

冲突描述
情景,配置为用appdef启动相关进程,将一个进程拆成两个进程后,在做压力测试的时候有问题,同一个容器里面,加载同一个.so文件或者多个在很小的概率上会有冲突,因为进程启动先后不受控制。

问题的解决
在一个容器中启动多个进程
1.用同一个脚本启动,入参为启动的进程名,脚本中判断入参个数若为多个则循环启动。
2.然后调用子脚本,逐一启动进程。

注意点
使用&标识符即可在bash脚本中达到setdaemon的效果。

代码逻辑如下

#!/usr/bin/env bash
set -euo pipefail
readonly process_num="$#"
readonly script_path="$(readlink -f "$0")"
readonly script_dir="${script_path%/*}"
myLogger="logger -t start_cxx.sh"
export LD_LIBRARY_PATH=/opt/xx/lib64/:$LD_LIBRARY_PATH
ldconfig
for ((i=1; i<=process_num; i++))
do
    if [ $i -ne $process_num ]; then
        ${script_dir}/process_run.sh ${!i} &
    else
        ${script_dir}/process_run.sh ${!i}
    fi
done

拓展
1.
$?表示上一条命令执行结果
s hel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值