Я программист на C/C++ и довольно глуп в целом (или, по крайней мере, то, как bash делает вещи, заставляет меня чувствовать себя растерянным). Я не могу разобраться с подстановкой процесса.
Мне нужно определить глобальный булев, установить его где-то в цикле и использовать его в глобальной области видимости. Не мог бы кто-нибудь объяснить самым простым способом, как адаптировать приведенный ниже код, чтобы я мог достичь своей цели, достаточно просто, чтобы мне не пришлось завтра снова напрягать мозги, пытаясь понять подстановку процесса.
# DEFINE HERE
for i in `seq 0 ${DAEMON_COUNT}`;
do
if [ ! -d "data$i" ]; then
# SET HERE
echo "data$i does not exist. Creating...";
mkdir data$i
fi
done
# TEST AND USE HERE
честно говоря, я не думаю, что bash справится с этой задачей.... следующий блок выглядит следующим образом.
echo "-------------------------------------------------------------------------------"
echo "checking the state of potentially running daemons"
for i in `seq 0 ${DAEMON_COUNT}`;
do
if [ ! -e "data$i/mongod.lock" ] ; then
echo "[no lock file] mongod process $i does not exist"
else
echo "[lock file exists] process $i lock file exists "
I_PID=`cat data$i/mongod.lock`
if [ ! ${I_PID} ]; then
echo " [GOOD] lock pid empty"
elif [ "`ps -p ${I_PID} | grep ${I_PID}`" ]; then
echo " [GOOD] data1 pid: ${I_PID} running"
else
echo "[PROBABLY FATAL] data1 pid: ${I_PID} not running."
fi
fi
done
echo "-------------------------------------------------------------------------------"
Теперь мне нужен глобальный массив структур, чтобы я мог перебирать их и предпринимать условные действия для правильной инициализации демонов :/.
Может просто использовать libc и делать все это в lua, единственная причина, по которой я сдерживаюсь, это необходимость установки камней, мне не нравятся специальные хранилища кода, извергающие все, что они хотят, на мою машину :D