
(在 AWS 上使用 Ubuntu EC2)
我有一個腳本,/home/ubuntu/start.sh
.如果我運行它ubuntu
,它運行良好。我需要它在啟動時運行,所以我把它放在/etc/rc.local
.然後,這將在重新啟動時以 root 身份運行,但會失敗。我可以透過以下方式重現失敗:
# 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
所以它看起來像:
- root 不知道(由under
npm
安裝,這樣才有意義)ubuntu
/home/ubuntu/.nvm/versions/node/v4.2.6/bin/npm
su -c ./start.sh - ubuntu
並不完全像 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 並作為後台程序。