Похоже, я не могу получить доступ к свойству $HOME в моем приложении nodeJS при запуске child_process на моем компьютере с Linux:
var exec = require('child_process').exec
var testHome = `echo $HOME`
testHomeCmd = exec(testHome)
testHomeCmd.stdout.on('data', function (data) {
console.info(data)
})
Где я получаю вывод: [17597]: /
Если я запускаю echo $HOME в терминале, я получаю:
$ echo $HOME
/home/cs4
Есть предположения?
Я действительно упаковал приложение узла в RPM и запустил его с systemctl start. Если я запустил простой node testfile.js с указанным выше, он правильно выведет домашний каталог.
Похоже, что тогда все работает так, как задумано. Вы вместо этого пытаетесь найти домашний каталог данного пользователя в системе? Или вы пытаетесь заставить systemctl запустить этот процесс от имени вашего пользователя?
Я думаю, что может иметь смысл, если systemctl запустит процесс от имени моего пользователя. (Я предполагаю, что по умолчанию он работает как root?)
Вы пытались получить доступ к такой переменной: var testHome=process.env.HOME?





Если вы запустите
node yourfile.jsна том же терминале, получите ли вы тот же результат? У разных учетных записей разные домашние каталоги, поэтому, если вы запустите свой сервер от имени другого пользователя, данные не будут соответствовать вашему имени пользователя.