Вы можете заставить bash
прочитать /etc/bash.bashrc
и ~/. bashrc
(без других побочных эффектов использования bash -i
), заставив его думать, что он вызывается через ssh
:
sudo -Hu someuser env SSH_CLIENT=1 SHLVL=0 \
"NODE_PATH=$NODE_PATH" "FULL_PATH=$FULL_PATH" \
"FILE_NAME=$FILE_NAME" "PROGRAM_NAME=$PROGRAM_NAME" bash -c '
"$NODE_PATH" "$FULL_PATH/$FILE_NAME" >> "/var/log/$PROGRAM_NAME.sys.log" 2>&1'
sudo
обычно сбрасывает окружение, поэтому вам нужно передать их таким образом. Вам нужно -H
(или -i
], хотя -i
вызовет чтение файлов профиля) так, чтобы HOME
был установлен (как минимум, для расположения ~/.bashrc
).