스크립트에서 sudo를 사용하여 명령을 찾을 수 없습니다.

스크립트에서 sudo를 사용하여 명령을 찾을 수 없습니다.

Bash 스크립트에서 sudo 명령을 실행하려고 합니다.

#!/bin/bash

sudo node app.js

이것은 나에게 충격을 주었다:

sudo: node: command not found

sudo 없이 node app.js만 실행하려고 하면 정상적으로 실행됩니다.

실행하려고 하면 sudo -hsudo help가 인쇄됩니다.

그러나 시도하면 sudo node app.js오류가 발생합니다.

답변1

node비표준 경로에 있거나 적어도 루트 경로에 없는 것 같습니다 . 이 문제를 해결하는 방법에는 여러 가지가 있습니다.

  1. 전체 경로 사용node

    • 전체 경로 찾기 사용which node

    • /home/user/bin/node거기에 있다고 말하면 전화하세요.sudo /home/user/bin/node app.js

    • 또는 @UlrichSchwarz가 제안한 대로 명령 대체를 통해 두 가지를 결합할 수 있습니다.sudo $(which node) app.js

    • sudo해당 위치에 있는 사용자에 대한 읽기/실행 권한이 필요하다는 것을 기억하십시오. sudo다음을 수행할 때 이는 큰 문제가 아닙니다.root


  1. 환경 변수를 보존하는 옵션 sudo으로 호출-E

    • sudo -E node app.js

    • $PATH이렇게 하면 이전 상태 가 유지됩니다.sudo

    • sudo자세한 내용은 맨페이지를 참조하세요 .http://linux.die.net/man/8/sudo

관련 정보