こんにちは、いつもお読みいただきありがとうございます。
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の設定などをしています。
参考になれば幸いです。