다음과 같은 일이 발생하는 이유를 이해하도록 도와줄 수 있는 사람이 있습니까?
$ cd /etc/init.d; sudo service hadoop-hdfs-namenode status
Hadoop namenode is running [ OK ]
$ sudo /etc/init.d/hadoop-hdfs-namenode status
Hadoop namenode is running [ OK ]
$ sudo service /etc/init.d/hadoop-hdfs-namenode status
/etc/init.d/hadoop-hdfs-namenode: unrecognized service
$ cd /etc/init.d; sudo hadoop-hdfs-namenode status
sudo: hadoop-hdfs-namenode: command not found
기본적으로 이전에 추가한 /etc/init.d/
경우 실행하려면 추가해야 하고, 그렇지 않으면 오류가 발생한다는 것을 알았습니다 .service
hadoop-hdfs-namenode
command not found
하지만 홈 디렉토리에 있으면 추가하지 않아도 괜찮습니다. service
사실 service
아무 곳에나 추가하는 것은 항상 잘못된 것입니다.
왜 service
필요하지 않으며 홈 디렉토리에 추가하는 것이 항상 잘못된 이유는 무엇입니까?
답변1
일반적으로 .
당신의 길에 있지 않습니다. 따라서 스크립트가 실행되는 경로를 지정해야 합니다. 이것이 현재 디렉터리인 경우 다음을 수행합니다.
[cloudera@quickstart ~]$ cd /etc/init.d; sudo ./hadoop-hdfs-namenode status
의 경우 service
서비스 이름 앞에 경로를 지정할 필요가 없습니다. 이것은 잘 작동합니다:
[cloudera@quickstart ~]$ sudo service hadoop-hdfs-namenode status