Não é possível iniciar uma aplicação como serviço, mas a execução como processo independente simplesmente funciona

4

Para um serviço, embora exista um arquivo pid, mas ainda ao tentar iniciar o serviço, ele falha dizendo:

$ sudo service cassandra start
* could not access pidfile for Cassandra

Eu verifiquei as permissões da pasta em /var/run (cujo proprietário é raiz) e a subpasta cassandra é de propriedade do usuário da cassandra, mas ainda assim o serviço não pode acessar o arquivo pid, embora tenha verificado que o arquivo pid existe. (Também pid é alocado). Então, por que diz que não pode acessar o pidfile?

E a execução de cassandra como um processo autônomo apenas funciona, mas não apenas usando service cassandra start

$ sudo ls -l /var/run/cassandra 
total 4 
-rw-r--r-- 1 cassandra cassandra 4 Mar 18 07:33 cassandra.pid
$ sudo su
# ls -ld /var/run/cassandra 
dr--r----- 2 cassandra cassandra 60 Mar 18 07:38 /var/run/cassandra

Como faço isso funcionar usando sudo service cassandra start ?

    
por Rajat Gupta 18.03.2014 / 06:36

3 respostas

5

Você tem que remover a pasta /var/run/cassandra , portanto, tem permissões erradas:

sudo rm -rf /var/run/cassandra

Ou você pode corrigir as permissões manualmente:

sudo chmod 750 /var/run/cassandra

Em seguida, inicie o Cassandra como serviço:

sudo service cassandra start

Algumas explicações

As instruções das permissões de arquivo podem ser encontradas aqui .

  • É seguro excluir essa pasta porque ela recria com permissões e conteúdo corretos. Mas não o exclua quando funcionar corretamente. Isso pode resultar em perda de dados ou comportamento incorreto.

  • chmod 750 descriptografa como permissões rwxr-x ---. Permite leitura-gravação-execução para o usuário, leitura-execução para o grupo e nada para os outros. Para o Cassandra, basta definir permissões.

por Danatela 18.03.2014 / 08:43
2

Esta solução pode ser obtida da seguinte maneira:

$ sudo vim /etc/init.d/cassandra;

Encontre a seguinte linha:

CMD_PATT="cassandra.+CassandraDaemon"

Substituir por:

CMD_PATT="cassandra"

Salve e pare e comece de novo. Serviço irá obter o status corretamente; Testado no cassandra 2.3

Fonte aqui: link (marque o passo 3)

    
por Joepreludian 13.11.2015 / 16:30
0

Minha solução para migração do Cassandra 2.0.9 para 2.1.4

Após a atualização com

sudo apt-get install dsc21

Ir para o arquivo de log:

tail -f /var/log/cassandra/system.log

Você pode ver que precisa modificar o arquivo de configuração da sua cassandra.

  1. Pare Cassandra

    sudo /etc/init.d/cassandra stop
    
  2. Ir para o arquivo de configuração do Cassandra

    sudo vi /etc/cassandra/cassandra.yaml
    
  3. Comente estas cinco linhas ou remova-as:

    • multithreaded_compaction: false
    • preheat_kernel_page_cache: false
    • memtable_flush_queue_size: 4
    • in_memory_compaction_limit_in_mb: 64
    • compaction_preheat_key_cache: true
  4. Inicie o Cassandra

    sudo /etc/init.d/cassandra start
    
  5. Verifique

    nodetool status
    
por Fred 10.04.2015 / 17:27