Рейтинг:0

bitcoind.service: не удается открыть файл PID /run/bitcoind/bitcoind.pid (пока?) после запуска: операция не разрешена

флаг my

В Ubuntu 20.04 LTS я сделал блок service/systemd для bitcoind, но когда я его запускаю, я получаю эту ошибку:

Не удается открыть файл PID /run/bitcoind/bitcoind.pid (пока?) после запуска: операция не разрешена

Это звучит как проблема с разрешением (?), но я понимаю, что файл PID и / или папка, содержащая его, являются своего рода эфемерными, например, появляются только во время работы службы, и поэтому как бы вы назначили постоянные разрешения для чего-то, что приходит и идет? Также кажется, что для этого вообще нужно изменить разрешения. Что я могу сделать, чтобы устройство работало правильно?

▪ bitcoind.service — биткойн-демон
     Загружено: загружено (/etc/systemd/system/bitcoind.service; включено; предустановка поставщика: включена)
     Активно: сбой (результат: код выхода) с вс 20.06.2021 09:46:57 CDT; 14 сек. назад
    Процесс: 104861 ExecStart=/usr/local/bin/bitcoind -daemon -pid=/run/bitcoind/bitcoind.pid -conf=/home/first/.bitcoin/bitcoin.conf -datadir=/blockchain/.bitcoin/data (код=выход, статус=0/УСПЕХ)
   Основной PID: 104866 (код=выход, статус=1/ОШИБКА)

20 июня 09:46:57 server systemd[1]: Запуск демона Биткойн...
20 июня 09:46:57 сервер systemd[1]: bitcoind.service: невозможно открыть файл PID /run/bitcoind/bitcoind.pid (пока?) после запуска: операция не разрешена
20 июня, 09:46:57, сервер systemd[1]: запущен биткойн-демон.
20 июня, 09:46:57, сервер systemd[1]: bitcoind.service: основной процесс завершен, код = завершен, статус = 1/FAILURE
20 июня, 09:46:57, сервер systemd[1]: bitcoind.service: Ошибка с результатом «код выхода».

Я использую этот файл bitcoind.service, адаптированный из Руководство по настройке Stadicus Raspibolt:

# RaspiBolt: модуль systemd для биткойнов
# /etc/systemd/system/bitcoind.service

[Ед. изм]
Description=Биткойн-демон
После=network.target

[Оказание услуг]

# Выполнение службы
####################

ExecStart=/usr/local/bin/bitcoind -daemon \
                                  -pid=/run/bitcoind/bitcoind.pid \
                                  -conf=/home/first/.bitcoin/bitcoin.conf \
                                  -datadir=/блокчейн/.биткойн/данные


# Управление процессом
#####################
Тип = разветвление
PIDFile=/run/bitcoind/bitcoind.pid
#ExecStartPost=/bin/sh -c 'chown first:first /run/bitcoind/bitcoind.pid'
#Restart=при сбое
#TimeoutSec=300
#RestartSec=30


# Создание каталога и разрешения
######################################

# Запускаем как биткойн: биткойн
Пользователь=первый
Группа=первая

# /запустить/биткойн
RuntimeDirectory=биткойн
RuntimeDirectoryMode = 0710

# Закаливающие мероприятия
#####################

# Укажите приватные файлы /tmp и /var/tmp.
PrivateTmp=истина

# Монтировать /usr, /boot/ и /etc только для чтения для процесса.
ProtectSystem=полный

# Запретить доступ к /home, /root и /run/user
ПротектХоме=истина

# Запретить процессу и всем его дочерним элементам
# новые привилегии через execve().
Ноньюпривилегес=истина

# Используйте новое пространство имен /dev, заполненное только псевдоустройствами API
# такие как /dev/null, /dev/zero и /dev/random.
Частные устройства = истина

# Запретить создание отображений доступной для записи и исполняемой памяти.
MemoryDenyWriteExecute=true

[Установить]
WantedBy=многопользовательская.цель



Вы можете видеть, что я пытался добавить это в файл bitcoind.service:

ExecStartPost=/bin/sh -c 'chown first:first /run/bitcoind/bitcoind.pid'

Но это не сработало и, похоже, выполняется до того, как существует файл bitcoind.pid.

Рейтинг:0
флаг my

Два вывода:

  1. Раздел «Меры по ужесточению» моих файлов bitcoin.service содержит:
# Запретить доступ к /home, /root и /run/user
ПротектХоме=истина

/home/.bitcoin — это место, где у меня есть файл bitcoin.conf, так что в этом проблема. Перемещение bitcoin.conf в другое место или отключение ProtectHome позволяет успешно запустить службу в этом конкретном случае.

  1. Следующее сообщение об ошибке не было связано со сбоем службы:
Не удается открыть файл PID /run/bitcoind/bitcoind.pid (пока?) после запуска: операция не разрешена

Это сообщение появляется время от времени, даже когда служба запускается нормально, поэтому, по-видимому, в данном случае это вообще не проблема.

флаг cn
Пожалуйста, используйте раздел ответов только для ОТВЕТОВ. Расширьте вопрос, добавив дополнительную информацию.
Рейтинг:0
флаг cn

Не удается открыть файл PID /run/bitcoind/bitcoind.pid

Либо /бег или же / запустить / биткойн или же /run/биткойн/bitcoind.pid не существует, а если и существует, то не принадлежит пользователю группы, которая в нем нуждается.

Пользователь=первый предполагает, что пользователь является «первым», и когда файл pid принадлежит другому пользователю (/ группе), тогда «первый», вы также получаете «отказано в доступе».

# Запускаем как биткойн: биткойн
Пользователь=первый
Группа=первая

Имейте в виду, что здесь говорится, что это должно быть:

# Запускаем как биткойн: биткойн
Пользователь = биткойн
Группа=биткойн

а не "первый".

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.