서비스 상태 키워드 "service"는 필요하지 않습니다.

서비스 상태 키워드 "service"는 필요하지 않습니다.

다음과 같은 일이 발생하는 이유를 이해하도록 도와줄 수 있는 사람이 있습니까?

$ 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/경우 실행하려면 추가해야 하고, 그렇지 않으면 오류가 발생한다는 것을 알았습니다 .servicehadoop-hdfs-namenodecommand 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

관련 정보