Você pode forçar o bash
a ler /etc/bash.bashrc
e ~/.bashrc
(sem os outros efeitos colaterais do uso de bash -i
) enganando-o, fazendo-o pensar em 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
geralmente redefine o ambiente, por isso você precisa passar por eles dessa maneira. Você deseja que -H
(ou -i
though -i
cause a leitura dos arquivos de perfil) para que HOME
seja definido (para a localização de ~/.bashrc
, pelo menos).