xref: /f-stack/start.sh (revision a02c88d6)
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