他のユーザーとしてスクリプトを実行すると、コマンドが見つかりません。

他のユーザーとしてスクリプトを実行すると、コマンドが見つかりません。

(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

だからそれは次のようになります:

  • ルートはわかりません(npmunderによってインストールされているので意味があります)ubuntu/home/ubuntu/.nvm/versions/node/v4.2.6/bin/npm
  • su -c ./start.sh - ubuntuUbuntuでスクリプトを実行するのとまったく同じではありません。

ログインしたように、このスクリプトをどのように実行しますかubuntu

ベストアンサー1

PATH=$PATH:/node/v4.2.6/bin/ ./start.sh

おすすめ記事