Мне нужно завершить процесс и перезапустить его, используя ту же команду, которая использовалась для его запуска. Сделали это с помощью приведенных ниже команд.
Но проблема в том, что полученная мной команда отличается от исходной команды, которая используется для запуска. Исходная команда имеет кавычки, а полученная команда без кавычек. Так что это не начало.
Не знаю почему? Может ли кто-нибудь помочь мне решить эту проблему ...
Сценарий ниже:
processes=$(ps aux | grep $1 -i | grep -v grep | grep -v sh | awk '{print $2}')
cntr=0
for i in $processes; do
cmd=$(cat /proc/$i/cmdline | tr '\000' ' ')
kill $i;
cmds[$cntr]=$cmd
cntr=$cntr+1
done
#Restart the process
echo "Commands: " $cmds
for cmd in $cmds; do
echo "Starting..." $cmd
eval "$cmd"
done
Исходная команда: "/apps/test/bin/" xxxxx
Моя команда: /apps/test/bin xxxxx