1#!/bin/bash 2 3function usage() { 4 echo "F-Stack app start tool" 5 echo "Options:" 6 echo " -c [conf] Path of config file" 7 echo " -b [N] Path of binary" 8 echo " -h show this help" 9 exit 10} 11 12conf=config.ini 13bin=./example/helloworld 14 15while getopts "c:b:h" args 16do 17 case $args in 18 c) 19 conf=$OPTARG 20 ;; 21 b) 22 bin=$OPTARG 23 ;; 24 h) 25 usage 26 exit 0 27 ;; 28 esac 29done 30 31allcmask0x=`cat ${conf}|grep lcore_mask|awk -F '=' '{print $2}'` 32((allcmask=16#$allcmask0x)) 33 34num_procs=0 35PROCESSOR=$(grep 'processor' /proc/cpuinfo |sort |uniq |wc -l) 36for((i=0;i<${PROCESSOR};++i)) 37do 38 mask=`echo "2^$i"|bc` 39 ((result=${allcmask} & ${mask})) 40 if [ ${result} != 0 ] 41 then 42 ((num_procs++)); 43 fi 44done 45 46for((proc_id=0; proc_id<${num_procs}; ++proc_id)) 47do 48 if ((proc_id == 0)) 49 then 50 echo "${bin} --conf ${conf} --proc-type=primary --proc-id=${proc_id}" 51 ${bin} --conf ${conf} --proc-type=primary --proc-id=${proc_id} & 52 sleep 5 53 else 54 echo "${bin} --conf ${conf} --proc-type=secondary --proc-id=${proc_id}" 55 ${bin} --conf ${conf} --proc-type=secondary --proc-id=${proc_id} & 56 fi 57done 58