diff --git a/electrum/daemon.py b/electrum/daemon.py index 672295d3a..0c0df6d74 100644 --- a/electrum/daemon.py +++ b/electrum/daemon.py @@ -121,10 +121,10 @@ def get_rpc_credentials(config): class Daemon(DaemonThread): - def __init__(self, config, fd=None): + def __init__(self, config, fd=None, *, listen_jsonrpc=True): DaemonThread.__init__(self) self.config = config - if fd is None: + if fd is None and listen_jsonrpc: fd, server = get_fd_or_server(config) if fd is None: raise Exception('failed to lock daemon; already running?') if config.get('offline'): @@ -137,7 +137,10 @@ class Daemon(DaemonThread): self.gui = None self.wallets = {} # type: Dict[str, Abstract_Wallet] # Setup JSONRPC server - self.init_server(config, fd) + self.server = None + if listen_jsonrpc: + self.init_server(config, fd) + self.start() def init_server(self, config, fd): host = config.get('rpchost', '127.0.0.1') diff --git a/run_electrum b/run_electrum index a254fabbb..148c54ee4 100755 --- a/run_electrum +++ b/run_electrum @@ -416,7 +416,6 @@ if __name__ == '__main__': if fd is not None: plugins = init_plugins(config, config.get('gui', 'qt')) d = daemon.Daemon(config, fd) - d.start() d.init_gui(config, plugins) sys.exit(0) else: @@ -437,7 +436,6 @@ if __name__ == '__main__': sys.exit(0) init_plugins(config, 'cmdline') d = daemon.Daemon(config, fd) - d.start() if config.get('websocket_server'): from electrum import websockets websockets.WebSocketServer(config, d.network).start()