(AWS에서 Ubuntu EC2 사용)
스크립트가 있습니다 /home/ubuntu/start.sh
. 실행하면 ubuntu
정상적으로 실행됩니다. 부팅 시 실행해야 하므로 에 넣었습니다 /etc/rc.local
. 그러면 재부팅 시 루트로 실행되지만 실패합니다. 다음을 사용하여 실패를 재현할 수 있습니다.
# I'm ubuntu
$ whoami
ubuntu
$ sudo su
# i'm now root
$ whoami
root
$ ./start.sh
./start.sh: line 9: npm: command not found
$ su -c ./start.sh - ubuntu
./start.sh: line 9: npm: command not found
그래서 그것은 다음과 같습니다:
- 루트는 모릅니다(
npm
under에 의해 설치되었으므로 의미가 있음)ubuntu
/home/ubuntu/.nvm/versions/node/v4.2.6/bin/npm
su -c ./start.sh - ubuntu
우분투에서 스크립트를 실행하는 것과 정확히 같지는 않습니다.
로그인한 것처럼 이 스크립트를 어떻게 실행합니까 ubuntu
?
답변1
PATH=$PATH:/node/v4.2.6/bin/ ./start.sh
답변2
선호하는 텍스트 편집기를 사용하여 /etc/rc.local을 편집하세요.
sudo nano /etc/rc.local
그리고 다음 줄을 추가하세요 su ubuntu -c /etc/rc.local/ubuntu/start.sh &
(이것이 실제로 파일 경로인 경우).
그러면 시작 시 ubuntu 사용자로 및 백그라운드 프로세스로 /etc/rc.local/ubuntu/start.sh가 실행됩니다.