Score:0

bitcoind.service: ไม่สามารถเปิดไฟล์ PID /run/bitcoind/bitcoind.pid (ยัง?) หลังจากเริ่มต้น: ไม่อนุญาตให้ดำเนินการ

ธง my

บน Ubuntu 20.04 LTS ฉันสร้างหน่วยบริการ / systemd สำหรับ bitcoind แต่เมื่อฉันเริ่มต้น ฉันได้รับข้อผิดพลาดนี้:

ไม่สามารถเปิดไฟล์ PID /run/bitcoind/bitcoind.pid (ยัง?) หลังจากเริ่มต้น: ไม่อนุญาตให้ดำเนินการ

ซึ่งฟังดูเหมือนปัญหาเรื่องสิทธิ์ (?) แต่ความเข้าใจของฉันคือไฟล์ PID และ/หรือโฟลเดอร์ที่มีไฟล์นั้นเป็นแบบชั่วคราว เช่น ปรากฏขึ้นเฉพาะในขณะที่บริการกำลังทำงาน ดังนั้นคุณจะกำหนดสิทธิ์ถาวรให้กับสิ่งที่มาได้อย่างไร และไป? ดูเหมือนว่าจะต้องเปลี่ยนการอนุญาตทั้งหมดสำหรับสิ่งนี้ ฉันจะทำอย่างไรเพื่อให้เครื่องทำงานได้อย่างถูกต้อง

â bitcoind.service - ภูต Bitcoin
     โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/bitcoind.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
     ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่ อา. 2021-06-20 09:46:57 CDT; 14s ที่ผ่านมา
    กระบวนการ: 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]: กำลังเริ่ม Bitcoin daemon...
20 มิ.ย. 09:46:57 เซิร์ฟเวอร์ systemd[1]: bitcoind.service: ไม่สามารถเปิดไฟล์ PID /run/bitcoind/bitcoind.pid (ยัง?) หลังจากเริ่มต้น: ไม่อนุญาตให้ดำเนินการ
20 มิ.ย. 09:46:57 เซิร์ฟเวอร์ systemd[1]: เริ่มใช้ Bitcoin daemon
20 มิ.ย. 09:46:57 เซิร์ฟเวอร์ systemd[1]: bitcoind.service: ออกจากกระบวนการหลักแล้ว, รหัส=ออกแล้ว, สถานะ=1/ล้มเหลว
20 มิ.ย. 09:46:57 เซิร์ฟเวอร์ systemd[1]: bitcoind.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'

ฉันใช้ไฟล์ bitcoind.service ที่ดัดแปลงมาจาก คู่มือการตั้งค่า Raspibolt ของ Stadicus:

# RaspiBolt: หน่วย systemd สำหรับ bitcoind
# /etc/systemd/system/bitcoind.service

[หน่วย]
คำอธิบาย=Bitcoin daemon
หลังจาก = network.target

[บริการ]

#การดำเนินการบริการ
###################

ExecStart=/usr/local/bin/bitcoind -daemon \
                                  -pid=/run/bitcoind/bitcoind.pid \
                                  -conf=/home/first/.bitcoin/bitcoin.conf \
                                  -datadir=/blockchain/.bitcoin/data


#การจัดการกระบวนการ
######################
ประเภท = ส้อม
PIDFile=/run/bitcoind/bitcoind.pid
#ExecStartPost=/bin/sh -c 'chown first:first /run/bitcoind/bitcoind.pid'
#รีสตาร์ท=เมื่อล้มเหลว
#หมดเวลาวินาที=300
#รีสตาร์ทวินาที=30


# การสร้างไดเร็กทอรีและการอนุญาต
####################################

# ทำงานเป็น bitcoin:bitcoin
ผู้ใช้ = อันดับแรก
กลุ่ม = อันดับแรก

# /รัน/บิตคอยน์
RuntimeDirectory=บิตคอยน์
RuntimeDirectoryMode=0710

#มาตรการเร่งรัด
######################

# ระบุ /tmp ส่วนตัวและ /var/tmp
PrivateTmp=จริง

# เมานต์ /usr, /boot/ และ /etc แบบอ่านอย่างเดียวสำหรับกระบวนการ
ProtectSystem=เต็ม

# ปฏิเสธการเข้าถึง /home, /root และ /run/user
ProtectHome=จริง

# ไม่อนุญาตให้กระบวนการและลูก ๆ ของมันได้รับ
# สิทธิพิเศษใหม่ผ่าน excve()
NoNewPrivileges=จริง

# ใช้เนมสเปซ /dev ใหม่ที่มีอุปกรณ์หลอก API เท่านั้น
# เช่น /dev/null, /dev/zero และ /dev/random
อุปกรณ์ส่วนตัว = จริง

# ปฏิเสธการสร้างการแมปหน่วยความจำที่เขียนได้และปฏิบัติการได้
MemoryDenyWriteExecute=จริง

[ติดตั้ง]
WantedBy=multi-user.target



คุณสามารถเห็นว่าฉันพยายามเพิ่มสิ่งนี้ในไฟล์ bitcoind.service:

ExecStartPost=/bin/sh -c 'chown ก่อน: first /run/bitcoind/bitcoind.pid'

แต่มันใช้งานไม่ได้และดูเหมือนว่าจะดำเนินการก่อนที่จะมีไฟล์ bitcoind.pid อยู่

Score:0
ธง my

การค้นพบสองประการ:

  1. ส่วน 'มาตรการชุบแข็ง' ของไฟล์ bitcoin.service ของฉันประกอบด้วย:
# ปฏิเสธการเข้าถึง /home, /root และ /run/user
ProtectHome=จริง

/home/.bitcoin เป็นที่ที่ฉันมีไฟล์ bitcoin.conf นั่นคือปัญหา การย้าย bitcoin.conf ไปที่อื่นหรือการปิดใช้งาน ProtectHome ช่วยให้บริการสามารถเริ่มต้นได้สำเร็จในกรณีนี้

  1. ข้อความแสดงข้อผิดพลาดต่อไปนี้ไม่เกี่ยวข้องกับความล้มเหลวของบริการ:
ไม่สามารถเปิดไฟล์ PID /run/bitcoind/bitcoind.pid (ยัง?) หลังจากเริ่มต้น: ไม่อนุญาตให้ดำเนินการ

ข้อความนี้ปรากฏขึ้นเป็นระยะ ๆ แม้ว่าบริการจะเริ่มทำงานตามปกติ และดูเหมือนว่าจะไม่เป็นปัญหาเลยในกรณีนี้

cn flag
โปรดใช้ส่วนคำตอบสำหรับคำตอบเท่านั้น ขยายคำถามโดยเพิ่มข้อมูลเพิ่มเติม
Score:0
ธง cn

ไม่สามารถเปิดไฟล์ PID /run/bitcoind/bitcoind.pid

ทั้ง /วิ่ง หรือ /รัน/บิตคอยด์ หรือ /run/bitcoind/bitcoind.pid ไม่มีอยู่หรือหากไม่ได้เป็นเจ้าของโดยผู้ใช้ของกลุ่มที่ต้องการ

ผู้ใช้ = อันดับแรก จะถือว่าผู้ใช้เป็น "คนแรก" และเมื่อไฟล์ pid เป็นของผู้ใช้รายอื่น (/ กลุ่ม) ดังนั้น "ครั้งแรก" คุณจะได้รับ "การอนุญาตถูกปฏิเสธ"

# ทำงานเป็น bitcoin:bitcoin
ผู้ใช้ = อันดับแรก
กลุ่ม = อันดับแรก

โปรดทราบว่ามันระบุไว้ที่นี่ว่าควรเป็น:

# ทำงานเป็น bitcoin:bitcoin
ผู้ใช้ = bitcoin
กลุ่ม=บิตคอยน์

และไม่ใช่ "ครั้งแรก"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา