한 사용자에게 설치된 프로그램은 전체 경로가 제공되어도 다른 사용자가 접근할 수 없습니다.

한 사용자에게 설치된 프로그램은 전체 경로가 제공되어도 다른 사용자가 접근할 수 없습니다.

루트(/home/otheruser/*)가 아닌 특정 사용자(예:)에 대해 모든 npm 패키지가 설치되어 있습니다.

프로그램이 실행 중인지 확인하기 위해 monit을 사용하고 있습니다. 이 경우 pm2는 다음과 같습니다.

/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2

루트 사용자인데도 터미널에서 다른 사용자의 전체 경로를 사용해도 pm2를 사용할 수 없습니다. 출력이 제공되지 않았거나 아래와 같이 아무 일도 일어나지 않았습니다.

root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 list

다음과 같은 다른 사용자와 함께 노드 모듈을 실행할 때마다

root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/forever -v
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/db-migrate -v
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 -v

그리고 syslog에 아래 내용이 표시됩니다.

node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured

다른 사용자로부터 작업을 수행하는 방법

답변1

NVM실제 프로그램이 아닙니다. 이는 사용자의 .profile, .bashrc 또는 ...에 로드되는 bash 기능이므로 sudo는 대부분의 다른 프로그램처럼 $PATH에서 자동으로 선택하지 않습니다.

심볼릭 링크를 만든 다음 액세스를 시도할 수 있습니다.

sudo ln -s "/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2" "/usr/local/bin"

답변2

pm2 명령을 실행하려는 로그인된 사용자(루트)의 환경 변수에 아래를 추가해야 작동합니다.

NVM_DIR="/home/otheruser/.nvm"
NVM_BIN="/home/otheruser/.nvm/versions/node/v15.5.1/bin"
PATH="/home/otheruser/.nvm/versions/node/v10.15.3 /큰 상자"

관련 정보