2016-03-04 08:25:16 +01:00
Sample init scripts and service configuration for dashd
2014-07-31 17:56:17 +02:00
==========================================================
Sample scripts and configuration files for systemd, Upstart and OpenRC
can be found in the contrib/init folder.
2016-03-04 08:25:16 +01:00
contrib/init/dashd.service: systemd service unit configuration
contrib/init/dashd.openrc: OpenRC compatible SysV style init script
contrib/init/dashd.openrcconf: OpenRC conf.d file
contrib/init/dashd.conf: Upstart service configuration file
contrib/init/dashd.init: CentOS compatible SysV style init script
2014-07-31 17:56:17 +02:00
2017-08-18 09:55:19 +02:00
Service User
2014-07-31 17:56:17 +02:00
---------------------------------
2016-08-19 13:46:30 +02:00
All three Linux startup configurations assume the existence of a "dashcore" user
2014-07-31 17:56:17 +02:00
and group. They must be created before attempting to use these scripts.
2018-06-05 15:47:25 +02:00
The macOS configuration assumes dashd will be set up for the current user.
2014-07-31 17:56:17 +02:00
2017-08-18 09:55:19 +02:00
Configuration
2014-07-31 17:56:17 +02:00
---------------------------------
2016-03-04 08:25:16 +01:00
At a bare minimum, dashd requires that the rpcpassword setting be set
2014-07-31 17:56:17 +02:00
when running as a daemon. If the configuration file does not exist or this
2018-10-05 01:58:00 +02:00
setting is not set, dashd will shut down promptly after startup.
2014-07-31 17:56:17 +02:00
This password does not have to be remembered or typed as it is mostly used
2016-03-04 08:25:16 +01:00
as a fixed token that dashd and client programs read from the configuration
2014-07-31 17:56:17 +02:00
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.
2016-03-04 08:25:16 +01:00
If dashd is run with the "-server" flag (set by default), and no rpcpassword is set,
2015-10-17 12:10:45 +02:00
it will use a special cookie file for authentication. The cookie is generated with random
2015-08-07 05:35:15 +02:00
content when the daemon starts, and deleted when it exits. Read access to this file
2015-10-17 12:10:45 +02:00
controls who can access it through RPC.
2014-07-31 17:56:17 +02:00
2015-10-17 12:10:45 +02:00
By default the cookie is stored in the data directory, but it's location can be overridden
2015-08-07 05:35:15 +02:00
with the option '-rpccookiefile'.
2014-07-31 17:56:17 +02:00
2016-03-04 08:25:16 +01:00
This allows for running dashd without having to do any manual configuration.
2015-08-04 08:10:51 +02:00
2015-10-17 12:10:45 +02:00
`conf` , `pid` , and `wallet` accept relative paths which are interpreted as
2015-08-04 08:10:51 +02:00
relative to the data directory. `wallet` *only* supports relative paths.
2014-07-31 17:56:17 +02:00
2015-10-17 12:10:45 +02:00
For an example configuration file that describes the configuration settings,
2016-03-04 08:25:16 +01:00
see `contrib/debian/examples/dash.conf` .
2014-07-31 17:56:17 +02:00
2017-08-18 09:55:19 +02:00
Paths
2014-07-31 17:56:17 +02:00
---------------------------------
2017-08-18 09:55:19 +02:00
### Linux
2015-10-25 02:28:02 +01:00
2014-07-31 17:56:17 +02:00
All three configurations assume several paths that might need to be adjusted.
2016-03-04 08:25:16 +01:00
Binary: `/usr/bin/dashd`
2016-08-19 13:46:30 +02:00
Configuration file: `/etc/dashcore/dash.conf`
2016-03-04 08:25:16 +01:00
Data directory: `/var/lib/dashd`
2019-02-04 19:51:00 +01:00
PID file: `/var/run/dashd/dashd.pid` (OpenRC and Upstart) or `/run/dashd/dashd.pid` (systemd)
2016-03-04 08:25:16 +01:00
Lock file: `/var/lock/subsys/dashd` (CentOS)
2014-07-31 17:56:17 +02:00
The configuration file, PID directory (if applicable) and data directory
2016-08-19 13:46:30 +02:00
should all be owned by the dashcore user and group. It is advised for security
2014-07-31 17:56:17 +02:00
reasons to make the configuration file and data directory only readable by the
2016-08-19 13:46:30 +02:00
dashcore user and group. Access to dash-cli and other dashd rpc clients
2014-07-31 17:56:17 +02:00
can then be controlled by group membership.
2019-02-04 19:51:00 +01:00
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 dashcore user and group
access to files under it _if_ the files themselves give permission to the
dashcore user and 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/dash/dash.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/dash/dash.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).
2018-06-05 15:47:25 +02:00
### macOS
2015-10-25 02:28:02 +01:00
2016-03-04 08:25:16 +01:00
Binary: `/usr/local/bin/dashd`
2016-07-06 20:44:33 +02:00
Configuration file: `~/Library/Application Support/DashCore/dash.conf`
2017-08-18 09:55:19 +02:00
Data directory: `~/Library/Application Support/DashCore`
Lock file: `~/Library/Application Support/DashCore/.lock`
2015-10-25 02:28:02 +01:00
2017-08-18 09:55:19 +02:00
Installing Service Configuration
2014-07-31 17:56:17 +02:00
-----------------------------------
2017-08-18 09:55:19 +02:00
### systemd
2014-07-31 17:56:17 +02:00
2015-04-28 16:48:28 +02:00
Installing this .service file consists of just copying it to
2014-07-31 17:56:17 +02:00
/usr/lib/systemd/system directory, followed by the command
2015-08-04 08:10:51 +02:00
`systemctl daemon-reload` in order to update running systemd configuration.
2014-07-31 17:56:17 +02:00
2016-03-04 08:25:16 +01:00
To test, run `systemctl start dashd` and to enable for system startup run
`systemctl enable dashd`
2014-07-31 17:56:17 +02:00
2018-03-05 17:39:56 +01:00
NOTE: When installing for systemd in Debian/Ubuntu the .service file needs to be copied to the /lib/systemd/system directory instead.
2017-08-18 09:55:19 +02:00
### OpenRC
2014-07-31 17:56:17 +02:00
2016-03-04 08:25:16 +01:00
Rename dashd.openrc to dashd and drop it in /etc/init.d. Double
2014-07-31 17:56:17 +02:00
check ownership and permissions and make it executable. Test it with
2016-03-04 08:25:16 +01:00
`/etc/init.d/dashd start` and configure it to run on startup with
`rc-update add dashd`
2014-07-31 17:56:17 +02:00
2017-08-18 09:55:19 +02:00
### Upstart (for Debian/Ubuntu based distributions)
2014-07-31 17:56:17 +02:00
2018-03-05 17:39:56 +01:00
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.
2016-03-04 08:25:16 +01:00
Drop dashd.conf in /etc/init. Test by running `service dashd start`
2014-07-31 17:56:17 +02:00
it will automatically start on reboot.
NOTE: This script is incompatible with CentOS 5 and Amazon Linux 2014 as they
2015-03-03 17:06:41 +01:00
use old versions of Upstart and do not supply the start-stop-daemon utility.
2017-08-18 09:55:19 +02:00
### CentOS
2015-03-03 17:06:41 +01:00
2016-03-04 08:25:16 +01:00
Copy dashd.init to /etc/init.d/dashd. Test by running `service dashd start` .
2015-03-03 17:06:41 +01:00
2016-03-04 08:25:16 +01:00
Using this script, you can adjust the path and flags to the dashd program by
setting the DASHD and FLAGS environment variables in the file
/etc/sysconfig/dashd. You can also use the DAEMONOPTS environment variable here.
2014-07-31 17:56:17 +02:00
2018-06-05 15:47:25 +02:00
### macOS
2015-10-25 02:28:02 +01:00
2016-03-04 08:25:16 +01:00
Copy org.dash.dashd.plist into ~/Library/LaunchAgents. Load the launch agent by
running `launchctl load ~/Library/LaunchAgents/org.dash.dashd.plist` .
2015-10-25 02:28:02 +01:00
2016-03-04 08:25:16 +01:00
This Launch Agent will cause dashd to start whenever the user logs in.
2015-10-25 02:28:02 +01:00
2016-03-04 08:25:16 +01:00
NOTE: This approach is intended for those wanting to run dashd as the current user.
You will need to modify org.dash.dashd.plist if you intend to use it as a
2016-08-19 13:46:30 +02:00
Launch Daemon with a dedicated dashcore user.
2015-10-25 02:28:02 +01:00
2017-08-18 09:55:19 +02:00
Auto-respawn
2014-07-31 17:56:17 +02:00
-----------------------------------
Auto respawning is currently only configured for Upstart and systemd.
Reasonable defaults have been chosen but YMMV.