サービスステータスキーワード「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

関連情報