Ethereum(Geth)をバックグラウンドで起動する&バックグラウンドからコンソールを起動する

article-thumbnail

こんにちは、いつもお読みいただきありがとうございます。
Ken(@gootablog)です。

今回はEthereumクライアントのGethをバックグラウンドで起動する方法、バックグラウンドで起動してコンソールを開く方法を書いていきます。
この記事はライブネットで起動してい方法を書いていきますが、バックグラウンドのコマンドは他の環境でも使えるので適時変更して使ってみてください。

環境構築などの記事も書いてあるのでよかったらどうぞ。

Ethereumクライアント「Geth」の環境構築方法
Ethereum(Geth)でプライベートネットを作成
Gethコンソールでよく使うコマンドをまとめました
Ethereum(Geth)でテストネット(Ropsten)に接続してみる
Ethereum(Geth)でJSON RPCを使って外部からアクセスする
Ethereum(Geth)をlivenetに接続してみる

Gethをバックグラウンドで起動する方法

僕はいつもこのコマンドで起動しています。

$ geth -datadir ~/.ethereum --fast --cache 2048  2 >> ~/log  &

まず2というのは出力する内容を指定しています。
Gethはそのまま起動すると実行している内容がどんどん表示されていきます。
1だとエラー以外の実行している内容を出力するようにしてくれます。2にするとエラーも出力してくれるようになります。

出力先を指定するのは>> [dir/file_name]です。
>>で出力することを示し、dir/file_nameで出力先のファイルを指定します。今回だとホームディレクトリにあるlogというファイルに出力しています。

そして&をつけることでバックグラウンドで起動することができます。
ただし&だとsshで接続している間は大丈夫ですが、ログアウトしてしまうとプロセスが終了してしまうので注意してください。

参考
bash: 標準出力、標準エラー出力をファイル、画面それぞれに出力する方法

ログアウトしてもGethがバックグラウンド起動している方法

ssh接続を切断してもバックグラウンドで実行する方法がこちら。

$ nohup geth -datadir ~/.ethereum --fast --cache 2048  2 >> ~/log  &

先頭にnohupを付けると切断しても動作するようにバックグラウンドで実行されます。

バックグラウンドで実行しているGethを停止する方法

Gethを停止するには

$ ps aux | grep geth

ubuntu    1420 71.4 14.9 10094440 4918852 ?    Sl   Jan28 5777:52 geth -datadir ~/.ethereum --fast --cache 2048  2

gethという名前が付いたプロセスを検索すると表示されます。
今回は1420というのがプロセス番号になるのでこのプロセスをkillコマンドで停止させます。

$ kill 1420

バックグラウンドで起動しているGethでコンソールを開く方法

$ geth --datadir ~/.ethereum attach ipc:~/.ethereum/geth.ipc

まず--datadirオプションでGethのデータディレクトリを指定します。Gethを起動するとそのディレクトリの中に.ipcという規格のファイルができるのでそれをattachオプションで指定し実行するとコンソールが開きます。

僕は一度Gethを実行してからコンソールを開きRPCの設定などをしています。

参考になれば幸いです。

Geth