Merge #12255: Update bitcoin.service to conform to init.md
bad1716c6d
init: Modify docs and add release note for 12255 (Carl Dong)b0c7b54d0c
init: Use systemd automatic directory creation (Carl Dong) Pull request description: - `-datadir` option specified. - Ask systemd to create and set the right mode for PID directory, configuration directory, and data directory. - Tell systemd our group so it will set the right owner for aforementioned directories. More information: https://www.freedesktop.org/software/systemd/man/systemd.exec.html Tree-SHA512: a6fad1efa2be433c1fdd863df3ff232736ed709a9e281f51a003b40987d8c213dc64a52bc13a19c85bf85680e78f0be112ecaf32ac274b1ff93bac84a1208845
This commit is contained in:
commit
76deb30550
3 changed files with 63 additions and 6 deletions
|
@ -5,21 +5,45 @@
|
||||||
# See "man systemd.service" for details.
|
# See "man systemd.service" for details.
|
||||||
|
|
||||||
# Note that almost all daemon options could be specified in
|
# Note that almost all daemon options could be specified in
|
||||||
# /etc/bitcoin/bitcoin.conf
|
# /etc/bitcoin/bitcoin.conf, except for those explicitly specified as arguments
|
||||||
|
# in ExecStart=
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Bitcoin daemon
|
Description=Bitcoin daemon
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/bitcoind -daemon -conf=/etc/bitcoin/bitcoin.conf -pid=/run/bitcoind/bitcoind.pid
|
ExecStart=/usr/bin/bitcoind -daemon \
|
||||||
# Creates /run/bitcoind owned by bitcoin
|
-pid=/run/bitcoind/bitcoind.pid \
|
||||||
RuntimeDirectory=bitcoind
|
-conf=/etc/bitcoin/bitcoin.conf \
|
||||||
User=bitcoin
|
-datadir=/var/lib/bitcoind
|
||||||
|
|
||||||
|
# Process management
|
||||||
|
####################
|
||||||
|
|
||||||
Type=forking
|
Type=forking
|
||||||
PIDFile=/run/bitcoind/bitcoind.pid
|
PIDFile=/run/bitcoind/bitcoind.pid
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
|
# Directory creation and permissions
|
||||||
|
####################################
|
||||||
|
|
||||||
|
# Run as bitcoin:bitcoin
|
||||||
|
User=bitcoin
|
||||||
|
Group=bitcoin
|
||||||
|
|
||||||
|
# /run/bitcoind
|
||||||
|
RuntimeDirectory=bitcoind
|
||||||
|
RuntimeDirectoryMode=0710
|
||||||
|
|
||||||
|
# /etc/bitcoin
|
||||||
|
ConfigurationDirectory=bitcoin
|
||||||
|
ConfigurationDirectoryMode=0710
|
||||||
|
|
||||||
|
# /var/lib/bitcoind
|
||||||
|
StateDirectory=bitcoind
|
||||||
|
StateDirectoryMode=0710
|
||||||
|
|
||||||
# Hardening measures
|
# Hardening measures
|
||||||
####################
|
####################
|
||||||
|
|
||||||
|
|
18
doc/init.md
18
doc/init.md
|
@ -56,7 +56,7 @@ All three configurations assume several paths that might need to be adjusted.
|
||||||
Binary: `/usr/bin/bitcoind`
|
Binary: `/usr/bin/bitcoind`
|
||||||
Configuration file: `/etc/bitcoin/bitcoin.conf`
|
Configuration file: `/etc/bitcoin/bitcoin.conf`
|
||||||
Data directory: `/var/lib/bitcoind`
|
Data directory: `/var/lib/bitcoind`
|
||||||
PID file: `/var/run/bitcoind/bitcoind.pid` (OpenRC and Upstart) or `/var/lib/bitcoind/bitcoind.pid` (systemd)
|
PID file: `/var/run/bitcoind/bitcoind.pid` (OpenRC and Upstart) or `/run/bitcoind/bitcoind.pid` (systemd)
|
||||||
Lock file: `/var/lock/subsys/bitcoind` (CentOS)
|
Lock file: `/var/lock/subsys/bitcoind` (CentOS)
|
||||||
|
|
||||||
The configuration file, PID directory (if applicable) and data directory
|
The configuration file, PID directory (if applicable) and data directory
|
||||||
|
@ -65,6 +65,22 @@ reasons to make the configuration file and data directory only readable by the
|
||||||
bitcoin user and group. Access to bitcoin-cli and other bitcoind rpc clients
|
bitcoin user and group. Access to bitcoin-cli and other bitcoind rpc clients
|
||||||
can then be controlled by group membership.
|
can then be controlled by group membership.
|
||||||
|
|
||||||
|
NOTE: When using the systemd .service file, the creation of the aforementioned
|
||||||
|
directories and the setting of their permissions is automatically handled by
|
||||||
|
systemd. Directories are given a permission of 710, giving the bitcoin group
|
||||||
|
access to files under it _if_ the files themselves give permission to the
|
||||||
|
bitcoin group to do so (e.g. when `-sysperms` is specified). This does not allow
|
||||||
|
for the listing of files under the directory.
|
||||||
|
|
||||||
|
NOTE: It is not currently possible to override `datadir` in
|
||||||
|
`/etc/bitcoin/bitcoin.conf` with the current systemd, OpenRC, and Upstart init
|
||||||
|
files out-of-the-box. This is because the command line options specified in the
|
||||||
|
init files take precedence over the configurations in
|
||||||
|
`/etc/bitcoin/bitcoin.conf`. However, some init systems have their own
|
||||||
|
configuration mechanisms that would allow for overriding the command line
|
||||||
|
options specified in the init files (e.g. setting `BITCOIND_DATADIR` for
|
||||||
|
OpenRC).
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
||||||
Binary: `/usr/local/bin/bitcoind`
|
Binary: `/usr/local/bin/bitcoind`
|
||||||
|
|
17
doc/release-notes/release-notes-pr12255.md
Normal file
17
doc/release-notes/release-notes-pr12255.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
systemd init file
|
||||||
|
=========
|
||||||
|
|
||||||
|
The systemd init file (`contrib/init/bitcoind.service`) has been changed to use
|
||||||
|
`/var/lib/bitcoind` as the data directory instead of `~bitcoin/.bitcoin`. This
|
||||||
|
change makes Bitcoin Core more consistent with other services, and makes the
|
||||||
|
systemd init config more consistent with existing Upstart and OpenRC configs.
|
||||||
|
|
||||||
|
The configuration, PID, and data directories are now completely managed by
|
||||||
|
systemd, which will take care of their creation, permissions, etc. See
|
||||||
|
[`systemd.exec (5)`](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#RuntimeDirectory=)
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
When using the provided init files under `contrib/init`, overriding the
|
||||||
|
`datadir` option in `/etc/bitcoin/bitcoin.conf` will have no effect. This is
|
||||||
|
because the command line arguments specified in the init files take precedence
|
||||||
|
over the options specified in `/etc/bitcoin/bitcoin.conf`.
|
Loading…
Reference in a new issue