У меня есть скрипт, который копирует файл, затем распаковывает и устанавливает его (агент-сервис) на несколько систем (IP-адреса считываются из файла system.txt). В сценарии я хотел запустить агент-сервис как пользовательский «тест». Однако после выполнения скрипта, когда я проверяю целевую систему, агент-агент отображается как работающий под именем «root». Что здесь может быть не так? Я не использую команду su в скрипте?su команда в сценарии оболочки
~]# ps -ef | grep agent-service
root 23511 15196 0 02:12 pts/3 00:00:00 agent-service
Рукописные>
#!/bin/bash
export AGENT=linux-5.8.1.tar.gz
while read host; do
scp $AGENT [email protected]$host:/opt
ssh -n [email protected]$host 'cd /opt/linux;
tar zxvf linux-5.8.1.tar.gz;
mkdir /opt/hyperic;
useradd -m test;
chown -R test:test /opt/linux;
su - test;
/opt/linux/agent-service start'
done < systems.txt
Что гласит: переключатель для тестирования пользователя, который не имеет ничего общего, заканчивается, и затем запустите его, как исходный пользователь. Если вы сохраните его в одной строке, он может работать ('su -c the-command'). Кстати: есть такие вещи, как «start-stop-daemon», которые заботятся о многих вещах, которые могут вам пригодиться. – Wrikken