mirror of https://github.com/F-Stack/f-stack.git
58 lines
1.3 KiB
Bash
Executable File
58 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
function usage() {
|
|
echo "F-Stack app start tool"
|
|
echo "Options:"
|
|
echo " -c [conf] Path of config file"
|
|
echo " -b [N] Path of binary"
|
|
echo " -h show this help"
|
|
exit
|
|
}
|
|
|
|
conf=config.ini
|
|
bin=./example/helloworld
|
|
|
|
while getopts "c:b:h" args
|
|
do
|
|
case $args in
|
|
c)
|
|
conf=$OPTARG
|
|
;;
|
|
b)
|
|
bin=$OPTARG
|
|
;;
|
|
h)
|
|
usage
|
|
exit 0
|
|
;;
|
|
esac
|
|
done
|
|
|
|
allcmask0x=`cat ${conf}|grep lcore_mask|awk -F '=' '{print $2}'`
|
|
((allcmask=16#$allcmask0x))
|
|
|
|
num_procs=0
|
|
PROCESSOR=$(grep 'processor' /proc/cpuinfo |sort |uniq |wc -l)
|
|
for((i=0;i<${PROCESSOR};++i))
|
|
do
|
|
mask=`echo "2^$i"|bc`
|
|
((result=${allcmask} & ${mask}))
|
|
if [ ${result} != 0 ]
|
|
then
|
|
((num_procs++));
|
|
fi
|
|
done
|
|
|
|
for((proc_id=0; proc_id<${num_procs}; ++proc_id))
|
|
do
|
|
if ((proc_id == 0))
|
|
then
|
|
echo "${bin} --conf ${conf} --proc-type=primary --proc-id=${proc_id}"
|
|
${bin} --conf ${conf} --proc-type=primary --proc-id=${proc_id} &
|
|
sleep 5
|
|
else
|
|
echo "${bin} --conf ${conf} --proc-type=secondary --proc-id=${proc_id}"
|
|
${bin} --conf ${conf} --proc-type=secondary --proc-id=${proc_id} &
|
|
fi
|
|
done
|