冲突描述
情景,配置为用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