Невозможно запустить приложение как службу, но выполнение как отдельный процесс просто работает
Для службы, хотя файл pid существует, но все же при попытке запустить службу, он не может сказать:
$ sudo service cassandra start
* could not access pidfile for Cassandra
Я проверил права доступа к папке под /var/run
(владелец которого является root), а подпапка cassandra принадлежит пользователю cassandra, но служба все равно не может получить доступ к файлу pid, даже если я убедился, что файл pid существует. (Также выделен pid). Так почему он говорит, что не может получить доступ к pidfile?
И работает cassandra
как автономный процесс просто работает, а не просто используя 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
Как мне сделать эту работу с помощью sudo service cassandra start
?
3 ответа
Вы должны удалить /var/run/cassandra
папка, следовательно, имеет неправильные разрешения:
sudo rm -rf /var/run/cassandra
Или вы можете исправить разрешения вручную:
sudo chmod 750 /var/run/cassandra
Затем запустите Cassandra как службу:
sudo service cassandra start
Некоторые объяснения
Инструкции о правах доступа к файлам вы можете найти здесь.
Удалить эту папку безопасно, потому что она воссоздает с нужными правами и содержимым. Но не удаляйте его, если он работает правильно. Это может привести к потере данных или неправильному поведению.
chmod 750
расшифровывает как rwxr-x --- разрешения. Это позволяет читать-писать-выполнять пользователю, читать-выполнять группе и ничего другим. Для Кассандры достаточно установить разрешения так.
Это решение может быть достигнуто следующим образом:
$ sudo vim /etc/init.d/cassandra;
Найдите следующую строку:
CMD_PATT="cassandra.+CassandraDaemon"
Заменить на:
CMD_PATT="cassandra"
Сохраните и остановите и начните снова. Сервис будет получать статус правильно; Проверено на Кассандре 2.3
Источник здесь: https://www.digitalocean.com/community/tutorials/how-to-install-cassandra-and-run-a-single-node-cluster-on-ubuntu-14-04(см. ШАГ 3)
Мое решение для миграции Cassandra 2.0.9 до 2.1.4
После обновления с
sudo apt-get install dsc21
Перейти в файл журнала:
tail -f /var/log/cassandra/system.log
Вы можете видеть, что вам нужно изменить свой конфигурационный файл cassandra.
Стоп Кассандра
sudo /etc/init.d/cassandra stop
Перейти к файлу конфигурации Cassandra
sudo vi /etc/cassandra/cassandra.yaml
Закомментируйте эти 5 строк или удалите их:
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
Старт Кассандры
sudo /etc/init.d/cassandra start
проверить
nodetool status