palavra-chave de status de serviço “serviço” não é necessária

1

Alguém poderia me ajudar a entender por que o seguinte está acontecendo?

$ 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

Basicamente, descobri que se estiver em /etc/init.d/ , service deve ser adicionado antes de hadoop-hdfs-namenode para que seja executado, caso contrário, o erro command not found será gerado.

Mas se eu estiver no diretório inicial, não há problema em não adicionar service e, na verdade, adicionar service em qualquer lugar sempre estará errado.

Por que service não é necessário e a inclusão sempre estará errada quando eu estiver no diretório inicial?

    
por user2961927 13.02.2017 / 02:48

1 resposta

2

Geralmente . não está no seu caminho. Então você precisa especificar o caminho para o script a ser executado. Se esse for o diretório atual, então:

[cloudera@quickstart ~]$ cd /etc/init.d; sudo ./hadoop-hdfs-namenode status

Quanto ao service , você não precisa especificar um caminho na frente do nome do serviço. Isso deve funcionar bem:

[cloudera@quickstart ~]$ sudo service hadoop-hdfs-namenode status
    
por 13.02.2017 / 02:51