Bashスクリプトでsudoコマンドを実行しようとしています。
#!/bin/bash
sudo node app.js
これは私に衝撃を与えた:
sudo: node: command not found
sudoなしでnode app.jsだけを実行しようとすると、正常に実行されます。
実行しようとすると、sudo -h
sudo helpが印刷されます。
ただし、試してみるとsudo node app.js
エラーが発生します。
答え1
node
非標準パスにあるか、少なくともルートパスにないようです。この問題を解決する方法はいくつかあります。
フルパスの使用
node
フルパス検索の使用
which node
/home/user/bin/node
そこにいると言ったら電話してください。sudo /home/user/bin/node app.js
あるいは、@UlrichSchwarzが提案したように、コマンド置換を使用して2つを組み合わせることもできます。
sudo $(which node) app.js
sudo
その場所にいるユーザーの読み取り/実行権限が必要であることを覚えておいてください。sudo
以下を行うとき、これは大きな問題ではありません。root
環境変数を保存するオプション
sudo
として呼び出す-E
sudo -E node app.js
$PATH
これにより、以前の状態が維持されます。sudo
sudo
詳しくはマンページをご覧ください。http://linux.die.net/man/8/sudo