Я согласен с комментариями выше относительно использования sudo
вместо входа в систему как root. Тем не менее, вот вариант чего-то из /etc/bash/bashrc
на моем Gentoo box, который, я думаю, делает то, что вы хотите:
if [[ "$(id -u)" == "0" ]] ; then
PS1+='\[\033[01;31m\]\h\[\033[01;36m\] \w \$\[\033[00m\] '
else
PS1+='\[\033[01;32m\]\u@\h\[\033[01;36m\] \w \$\[\033[00m\] '
fi
В зависимости от того, где вы его поместите, может потребоваться изменить PS1+=
на PS1=
.
Если вы хотите, чтобы переменные, определенные в файле сценария, были доступны для родительской среды, в которой выполняется этот сценарий, вам необходимо создать источник сценария, а не выполнять его. Измените строку ExecStart
на:
ExecStart=/bin/sh -c '. /home/ec2-user/myserver/config/myserverVars.sh ;/home/ec2-user/venv/bin/python /home/ec2-user/myserver/myserver.py >> /home/ec2-user/myserver/logs/systemd_myserver.log 2>&1 '
См. В чем разница между поиском ('.' или «источник» )и выполнение файла в bash? для получения подробной информации о разнице между поиском и выполнением скрипта.
Также обратите внимание, что я изменил порядок перенаправлений. Чтобы получить и stderr, и stdout в один и тот же файл, вам нужно > file 2>&1
, а не 2>&1 > file
.