aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-09-16 11:05:18 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2014-09-16 11:05:38 +0200
commit2d782ab2ce30bf106e34cd3288c9082ac04022f9 (patch)
tree8c9546e42f479644b0afc075772a7dffdcf281ac /doc
parentedb1eebabccc1b05ae6cc8065eda53a36cdca3ad (diff)
parent234bfbf6a5fcba37e510e9cb6c1f2a629cd0290e (diff)
downloadbitcoin-2d782ab2ce30bf106e34cd3288c9082ac04022f9.tar.xz
Merge pull request #4611
234bfbf Add init scripts and docs for Upstart and OpenRC (Adam Weiss)
Diffstat (limited to 'doc')
-rw-r--r--doc/README.md2
-rw-r--r--doc/init.md92
-rw-r--r--doc/systemd.md47
3 files changed, 93 insertions, 48 deletions
diff --git a/doc/README.md b/doc/README.md
index 10c9ad1799..d5d61738e8 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -67,7 +67,7 @@ The Bitcoin repo's [root README](https://github.com/bitcoin/bitcoin/blob/master/
- [Assets Attribution](assets-attribution.md)
- [Files](files.md)
- [Tor Support](tor.md)
-- [Systemd](systemd.md)
+- [Init Scripts (systemd/upstart/openrc)](init.md)
License
---------------------
diff --git a/doc/init.md b/doc/init.md
new file mode 100644
index 0000000000..3d14025ab4
--- /dev/null
+++ b/doc/init.md
@@ -0,0 +1,92 @@
+Sample init scripts and service configuration for bitcoind
+==========================================================
+
+Sample scripts and configuration files for systemd, Upstart and OpenRC
+can be found in the contrib/init folder.
+
+contrib/init/bitcoind.service: systemd service unit configuration
+contrib/init/bitcoind.openrc: OpenRC compatible SysV style init script
+contrib/init/bitcoind.openrcconf: OpenRC conf.d file
+contrib/init/bitcoind.conf: Upstart service configuration file
+
+1. Service User
+---------------------------------
+
+All three startup configurations assume the existence of a "bitcoin" user
+and group. They must be created before attempting to use these scripts.
+
+2. Configuration
+---------------------------------
+
+At a bare minimum, bitcoind requires that the rpcpassword setting be set
+when running as a daemon. If the configuration file does not exist or this
+setting is not set, bitcoind will shutdown promptly after startup.
+
+This password does not have to be remembered or typed as it is mostly used
+as a fixed token that bitcoind and client programs read from the configuration
+file, however it is recommended that a strong and secure password be used
+as this password is security critical to securing the wallet should the
+wallet be enabled.
+
+If bitcoind is run with "-daemon" flag, and no rpcpassword is set, it will
+print a randomly generated suitable password to stderr. You can also
+generate one from the shell yourself like this:
+
+bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo'
+
+Once you have a password in hand, set rpcpassword= in /etc/bitcoin/bitcoin.conf
+
+For an example configuration file that describes the configuration settings,
+see contrib/debian/examples/bitcoin.conf.
+
+3. Paths
+---------------------------------
+
+All three configurations assume several paths that might need to be adjusted.
+
+Binary: /usr/bin/bitcoind
+Configuration file: /etc/bitcoin/bitcoin.conf
+Data directory: /var/lib/bitcoind
+PID file: /var/run/bitcoind/bitcoind.pid (OpenRC and Upstart)
+ /var/lib/bitcoind/bitcoind.pid (systemd)
+
+The configuration file, PID directory (if applicable) and data directory
+should all be owned by the bitcoin user and group. It is advised for security
+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
+can then be controlled by group membership.
+
+4. Installing Service Configuration
+-----------------------------------
+
+4a) systemd
+
+Installing this .service file consists on just copying it to
+/usr/lib/systemd/system directory, followed by the command
+"systemctl daemon-reload" in order to update running systemd configuration.
+
+To test, run "systemctl start bitcoind" and to enable for system startup run
+"systemctl enable bitcoind"
+
+4b) OpenRC
+
+Rename bitcoind.openrc to bitcoind and drop it in /etc/init.d. Double
+check ownership and permissions and make it executable. Test it with
+"/etc/init.d/bitcoind start" and configure it to run on startup with
+"rc-update add bitcoind"
+
+4c) Upstart (for Debian/Ubuntu based distributions)
+
+Drop bitcoind.conf in /etc/init. Test by running "service bitcoind start"
+it will automatically start on reboot.
+
+NOTE: This script is incompatible with CentOS 5 and Amazon Linux 2014 as they
+use old versions of Upstart and do not supply the start-stop-daemon uitility.
+
+5. Auto-respawn
+-----------------------------------
+
+Auto respawning is currently only configured for Upstart and systemd.
+Reasonable defaults have been chosen but YMMV.
+
+
diff --git a/doc/systemd.md b/doc/systemd.md
deleted file mode 100644
index 96202c1532..0000000000
--- a/doc/systemd.md
+++ /dev/null
@@ -1,47 +0,0 @@
-SYSTEMD SUPPORT IN BITCOIN
-==========================
-
-Packagers can find a .service file in this repo in order to integrate bitcoin's
-daemon into systemd based distributions.
-
-bitcoind.service file is located in contrib/systemd/ folder.
-
-1. Users
----------------------------------
-
-This .service file assumes bitcoind user and group exist in the system, so packager
-should make sure they are created on installation.
-
-2. Files
----------------------------------
-
-The .service file assumes several paths that might need to be adjusted according
-to packager's needs.
-
-Daemon's config file is assumed to be located at /etc/bitcoind.conf (you can
-use contrib/debian/examples/bitcoin.conf as an example). Once installed, users
-must edit the file in order to update at least these two
-values: rpcuser and rpcpassword . Failing to do so will make the daemon fail
-to boot. However, the message written to /var/lib/bitcoind/debug.log file is
-very helpful and no default values should be set:
-
- YYYY-MM-DD HH:MM:DD Error: To use the "-server" option, you must set a rpcpassword in the configuration file:
- /etc/bitcoind.conf
- It is recommended you use the following random password:
- rpcuser=bitcoinrpc
- rpcpassword=HdYZ5HGtAF7mx8aTw6uCATtD2maMAK4E12Ysp4YNZQcX
- (you do not need to remember this password)
- The username and password MUST NOT be the same.
- If the file does not exist, create it with owner-readable-only file permissions.
- It is also recommended to set alertnotify so you are notified of problems;
- for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com
-
-Daemon's data and pid files will be stored in /var/lib/bitcoind directory, so it
-should be created on installation and make bitcoind user/group it's owner.
-
-3. Installing .service file
----------------------------------
-
-Installing this .service file consists on just copying it to /usr/lib/systemd/system
-directory, followed by the command "systemctl daemon-reload" in order to update
-running systemd configuration.