Сегодня я установил поверх 2.4.0 на CentOS 7. Я пробовал несколько способов изменить интервал запуска службы, включая принятый здесь ответ, но без изменения статуса службы.
В конце концов я добился успеха, отредактировав /usr/share/atop/atop.daily
, заменив LOGINTERVAL=600
на LOGINTERVAL=60
, что я подтвердил черезsystemctl status atop
Я знаю, что уже есть принятый ответ, но вот мой опыт работы с CentOS 7. Полагаю, я узнаю позже, делает ли это то, что я хочу.
Вам не нужно экранировать двойные кавычки в документе здесь -. Как у вас там, внешняя оболочка расширяет переменные, а оболочка, запущенная su
, видит -p \"gy75k9([0y6se2v^\"
буквально, обратная косая черта выходит из кавычек, а (
не заключен в кавычки.
Без обратной косой черты должно работать, если пароль не содержит \
, $
, "
или обратную косую черту. Или измените на одинарные кавычки, чтобы вам нужно было заботиться только об одинарных кавычках в пароле.
su - azureuser << EOF
...
az login --service-principal -u '$AZ_CLIENT' -p '$AZ_PASS' --tenant '$AZ_TENANT'
EOF
См. Экранирование переменной для использования в качестве содержимого другого скрипта о работе с произвольными значениями, включая одинарные кавычки.
В качестве альтернативы можно запустить оболочку, su
расширив переменные. Вам нужно будет заключить здесь -разделитель документа (или все знаки $
в документе здесь -)и использовать su -p
, чтобы сохранить переменные среды после su
. И на этот раз необходимы двойные -кавычки, чтобы позволить внутренней оболочке расширить переменные.
export AZ_CLIENT AZ_PASS AZ_TENANT
su -p - azureuser << 'EOF'
...
az login --service-principal -u "$AZ_CLIENT" -p "$AZ_PASS" --tenant "$AZ_TENANT"
EOF