Changeset View
Changeset View
Standalone View
Standalone View
doc/init.md
Sample init scripts and service configuration for bitcoind | Sample init scripts and service configuration for ecashd | ||||
========================================================== | ======================================================== | ||||
Sample scripts and configuration files for systemd, Upstart and OpenRC | Sample scripts and configuration files for systemd, Upstart and OpenRC | ||||
can be found in the contrib/init folder. | can be found in the contrib/init folder. | ||||
contrib/init/bitcoind.service: systemd service unit configuration | contrib/init/ecashd.service: systemd service unit configuration | ||||
contrib/init/bitcoind.openrc: OpenRC compatible SysV style init script | contrib/init/ecashd.openrc: OpenRC compatible SysV style init script | ||||
contrib/init/bitcoind.openrcconf: OpenRC conf.d file | contrib/init/ecashd.openrcconf: OpenRC conf.d file | ||||
contrib/init/bitcoind.conf: Upstart service configuration file | contrib/init/ecashd.conf: Upstart service configuration file | ||||
contrib/init/bitcoind.init: CentOS compatible SysV style init script | contrib/init/ecashd.init: CentOS compatible SysV style init script | ||||
Service User | Service User | ||||
--------------------------------- | --------------------------------- | ||||
All three Linux startup configurations assume the existence of a "bitcoin" user | All three Linux startup configurations assume the existence of a "ecash" user | ||||
and group. They must be created before attempting to use these scripts. | and group. They must be created before attempting to use these scripts. | ||||
The macOS configuration assumes bitcoind will be set up for the current user. | The macOS configuration assumes ecashd will be set up for the current user. | ||||
Configuration | Configuration | ||||
--------------------------------- | --------------------------------- | ||||
Running bitcoind as a daemon does not require any manual configuration. You may | Running ecashd as a daemon does not require any manual configuration. You may | ||||
set the `rpcauth` setting in the `bitcoin.conf` configuration file to override | set the `rpcauth` setting in the `ecash.conf` configuration file to override | ||||
the default behaviour of using a special cookie for authentication. | the default behaviour of using a special cookie for authentication. | ||||
This password does not have to be remembered or typed as it is mostly used | 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 | as a fixed token that ecashd and client programs read from the configuration | ||||
file, however it is recommended that a strong and secure password be used | 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 | as this password is security critical to securing the wallet should the | ||||
wallet be enabled. | wallet be enabled. | ||||
If bitcoind is run with the "-server" flag (set by default), and no rpcpassword is set, | If ecashd is run with the "-server" flag (set by default), and no rpcpassword is set, | ||||
it will use a special cookie file for authentication. The cookie is generated with random | it will use a special cookie file for authentication. The cookie is generated with random | ||||
content when the daemon starts, and deleted when it exits. Read access to this file | content when the daemon starts, and deleted when it exits. Read access to this file | ||||
controls who can access it through RPC. | controls who can access it through RPC. | ||||
By default the cookie is stored in the data directory, but it's location can be overridden | By default the cookie is stored in the data directory, but it's location can be overridden | ||||
with the option '-rpccookiefile'. | with the option '-rpccookiefile'. | ||||
This allows for running bitcoind without having to do any manual configuration. | This allows for running ecashd without having to do any manual configuration. | ||||
`conf`, `pid`, and `wallet` accept relative paths which are interpreted as | `conf`, `pid`, and `wallet` accept relative paths which are interpreted as | ||||
relative to the data directory. `wallet` *only* supports relative paths. | relative to the data directory. `wallet` *only* supports relative paths. | ||||
For an example configuration file that describes the configuration settings, | For an example configuration file that describes the configuration settings, | ||||
see `contrib/debian/examples/bitcoin.conf`. | see `contrib/debian/examples/ecash.conf`. | ||||
Paths | Paths | ||||
--------------------------------- | --------------------------------- | ||||
### Linux | ### Linux | ||||
All three configurations assume several paths that might need to be adjusted. | All three configurations assume several paths that might need to be adjusted. | ||||
Binary: `/usr/bin/bitcoind`\ | Binary: `/usr/bin/ecashd`\ | ||||
Configuration file: `/etc/bitcoin/bitcoin.conf`\ | Configuration file: `/etc/ecash/ecash.conf`\ | ||||
Data directory: `/var/lib/bitcoind`\ | Data directory: `/var/lib/ecashd`\ | ||||
PID file: `/var/run/bitcoind/bitcoind.pid` (OpenRC and Upstart) or `/var/lib/bitcoind/bitcoind.pid` (systemd)\ | PID file: `/var/run/ecashd/ecashd.pid` (OpenRC and Upstart) or `/var/lib/ecashd/ecashd.pid` (systemd)\ | ||||
Lock file: `/var/lock/subsys/bitcoind` (CentOS) | Lock file: `/var/lock/subsys/ecashd` (CentOS) | ||||
The configuration file, PID directory (if applicable) and data directory | 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 | should all be owned by the ecash user and group. It is advised for security | ||||
reasons to make the configuration file and data directory only readable by the | 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 | ecash user and group. Access to ecash-cli and other ecashd rpc clients | ||||
can then be controlled by group membership. | can then be controlled by group membership. | ||||
### Mac OS X | ### Mac OS X | ||||
Binary: `/usr/local/bin/bitcoind`\ | Binary: `/usr/local/bin/ecashd`\ | ||||
Configuration file: `~/Library/Application Support/Bitcoin/bitcoin.conf`\ | Configuration file: `~/Library/Application Support/eCash/ecash.conf`\ | ||||
Data directory: `~/Library/Application Support/Bitcoin`\ | Data directory: `~/Library/Application Support/eCash`\ | ||||
Lock file: `~/Library/Application Support/Bitcoin/.lock` | Lock file: `~/Library/Application Support/eCash/.lock` | ||||
Installing Service Configuration | Installing Service Configuration | ||||
----------------------------------- | ----------------------------------- | ||||
### systemd | ### systemd | ||||
Installing this .service file consists of just copying it to | Installing this .service file consists of just copying it to | ||||
/usr/lib/systemd/system directory, followed by the command | /usr/lib/systemd/system directory, followed by the command | ||||
`systemctl daemon-reload` in order to update running systemd configuration. | `systemctl daemon-reload` in order to update running systemd configuration. | ||||
To test, run `systemctl start bitcoind` and to enable for system startup run | To test, run `systemctl start ecashd` and to enable for system startup run | ||||
`systemctl enable bitcoind` | `systemctl enable ecashd` | ||||
NOTE: When installing for systemd in Debian/Ubuntu the .service file needs to be copied to the /lib/systemd/system directory instead. | NOTE: When installing for systemd in Debian/Ubuntu the .service file needs to be copied to the /lib/systemd/system directory instead. | ||||
### OpenRC | ### OpenRC | ||||
Rename bitcoind.openrc to bitcoind and drop it in /etc/init.d. Double | Rename ecashd.openrc to ecashd and drop it in /etc/init.d. Double | ||||
check ownership and permissions and make it executable. Test it with | check ownership and permissions and make it executable. Test it with | ||||
`/etc/init.d/bitcoind start` and configure it to run on startup with | `/etc/init.d/ecashd start` and configure it to run on startup with | ||||
`rc-update add bitcoind` | `rc-update add ecashd` | ||||
### Upstart (for Debian/Ubuntu based distributions) | ### Upstart (for Debian/Ubuntu based distributions) | ||||
Upstart is the default init system for Debian/Ubuntu versions older than 15.04. If you are using version 15.04 or newer and haven't manually configured upstart you should follow the systemd instructions instead. | Upstart is the default init system for Debian/Ubuntu versions older than 15.04. If you are using version 15.04 or newer and haven't manually configured upstart you should follow the systemd instructions instead. | ||||
Drop bitcoind.conf in /etc/init. Test by running `service bitcoind start` | Drop ecashd.conf in /etc/init. Test by running `service ecashd start` | ||||
it will automatically start on reboot. | it will automatically start on reboot. | ||||
NOTE: This script is incompatible with CentOS 5 and Amazon Linux 2014 as they | 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 utility. | use old versions of Upstart and do not supply the start-stop-daemon utility. | ||||
### CentOS | ### CentOS | ||||
Copy bitcoind.init to /etc/init.d/bitcoind. Test by running `service bitcoind start`. | Copy ecashd.init to /etc/init.d/ecashd. Test by running `service ecashd start`. | ||||
Using this script, you can adjust the path and flags to the bitcoind program by | Using this script, you can adjust the path and flags to the ecashd program by | ||||
setting the BITCOIND and FLAGS environment variables in the file | setting the ECASHD and FLAGS environment variables in the file | ||||
/etc/sysconfig/bitcoind. You can also use the DAEMONOPTS environment variable here. | /etc/sysconfig/ecashd. You can also use the DAEMONOPTS environment variable here. | ||||
### Mac OS X | ### Mac OS X | ||||
Copy org.bitcoin.bitcoind.plist into ~/Library/LaunchAgents. Load the launch agent by | Copy org.ecash.ecashd.plist into ~/Library/LaunchAgents. Load the launch agent by | ||||
running `launchctl load ~/Library/LaunchAgents/org.bitcoin.bitcoind.plist`. | running `launchctl load ~/Library/LaunchAgents/org.ecash.ecashd.plist`. | ||||
This Launch Agent will cause bitcoind to start whenever the user logs in. | This Launch Agent will cause ecashd to start whenever the user logs in. | ||||
NOTE: This approach is intended for those wanting to run bitcoind as the current user. | NOTE: This approach is intended for those wanting to run ecashd as the current user. | ||||
You will need to modify org.bitcoin.bitcoind.plist if you intend to use it as a | You will need to modify org.ecash.ecashd.plist if you intend to use it as a | ||||
Launch Daemon with a dedicated bitcoin user. | Launch Daemon with a dedicated ecash user. | ||||
Auto-respawn | Auto-respawn | ||||
----------------------------------- | ----------------------------------- | ||||
Auto respawning is currently only configured for Upstart and systemd. | Auto respawning is currently only configured for Upstart and systemd. | ||||
Reasonable defaults have been chosen but YMMV. | Reasonable defaults have been chosen but YMMV. |