42

Surprised this one hasn't been asked yet.

But how / what is the recommended best practice for shutting down bitcoind ?

Right now I'm manually killing the process with either sudo kill {pid} or if this is failing (like just now) using sudo pkill -9 -f bitcoind

ManreeRist
  • 887
  • 2
  • 8
  • 12

7 Answers7

73

I'm not sure if bitcoind stop still works as RPC with newer releases, since somewhere in help sections it says RPC funcionality removed from bitcoind.

Try bitcoin-cli stop.

Aliakbar Ahmadi
  • 1,625
  • 1
  • 11
  • 22
  • 6
    Confirmed `bitcoin-cli stop` works in version 11. – Jonathan Cross Sep 17 '15 at 12:42
  • 2
    Still works in 2017! Use this. – iaforek Oct 23 '17 at 08:14
  • does not work... I did ./xxxcoin-cli stop but nothing happen after that and ./xxxcoind also does not stopped. – creator Feb 21 '18 at 12:29
  • 1
    Yes, it still works. – Ken Sharp Aug 01 '18 at 23:17
  • Does not work with my setup. I think first of all to be able to use `bitcoin-cli` you have to start `bitcoind` with option `server=1`. I did this and still `bitcoin-cli getinfo` is returning an error. So I suspect `bitcoin-cli` does not work properly. I have a process in `top` that is called `bitcoin-init`. I am not sure if this is the right process that should be active after I started `bitcoind` or if this some sort of initialisation process and since it uses 100% of my Raspberry CPU it might as well hang and this might be the root of the problem. I appreciate any input. – bomben Aug 28 '19 at 10:18
  • Try `sudo bitcoin-cli stop` if that throws an error about RPC credentials – Tamás Sengel Feb 08 '23 at 07:06
17

EDIT: This answer is deprecated, it applied to an old version of the bitcoind client. Apparently RPC functionality is now removed. Please look at the other answers instead.

I guess using bitcoind stop. I recommend this approach as killing the process could end you up with a corrupted database, from what I have experienced. Use bitcoind --help for all options and bitcoind help for all JSON-RPC commands.

Jori
  • 1,580
  • 10
  • 15
  • Good thinking. Missed that. – ManreeRist Oct 11 '13 at 19:11
  • 12
    This doesn't work anymore: `Error: Command line contains unexpected token 'stop', see bitcoind -h for a list of options.`. The correct way to stop `bitcoind` is `bitcoin-cli-stop` command (see the other answer with higher vote count). – iaforek Oct 23 '17 at 08:10
  • 3
    The correct way, as shown by Aliakbar Ahmadi and confirmed by Jonathan Cross is `bitcoin-cli stop`. Note the last space as opposed to a hyphen. – BlackBeltBob Apr 17 '20 at 18:44
9

if you started it using 'bitcoind -daemon' and you are using version 10 or above, then use 'bitcoin-cli stop'

Sean Bradley
  • 401
  • 4
  • 5
  • Does not work for me. What could be the reason? Does the daemon need to be started as a server? Is `bitcoin-init` an initialisation process to `bitcoind`? Because that is my process in `top`. – bomben Aug 28 '19 at 10:22
3

In my case, It works that ./bitcoin-cli -regtest stop

Mike Min
  • 31
  • 2
2

Make sure you specify the same options that you normally use when running bitcoin, for example, if you use a different datadir:

cd C:\Program Files\Bitcoin\daemon
bitcoin-cli -datadir=C:\Bitcoin stop
Frank Forte
  • 121
  • 2
1

This worked for me:

bitcoin-cli -rpcuser=[username] -rpcpassword=[password] -rpcconnect=[ip] stop

dikukid
  • 11
  • 1
0

If using testnet, try ./bitcoin-cli -testnet stop

liaoming
  • 11
  • 1
  • 1
    `./bitcoin-cli stop` is enough – 0xb10c Aug 03 '18 at 08:51
  • 1
    I don't know why this correct and the only working answer when on testnet was down-voted. `./bitcoin-cli stop` is definitely not enough when running 0.18rc on testnet. – Tony Mar 14 '19 at 05:30
  • 2
    It's only enough if you specifically added testnet=1 to your bitcoin.conf. Otherwise the default is for mainnet! – karimkorun Jan 16 '20 at 16:49