fix forking duplicating processes on shutdown and breaking on windows
This commit is contained in:
parent
9ccbcf6c1d
commit
027ce4f45b
|
@ -19,6 +19,7 @@
|
||||||
"""
|
"""
|
||||||
import base64
|
import base64
|
||||||
import binascii
|
import binascii
|
||||||
|
import mimetypes
|
||||||
|
|
||||||
import unpaddedbase32
|
import unpaddedbase32
|
||||||
|
|
||||||
|
@ -37,6 +38,7 @@ site_api = Blueprint('siteapi', __name__)
|
||||||
def site(name: str)->Response:
|
def site(name: str)->Response:
|
||||||
"""Accept a site 'name', if pubkey then show multi-page site, if hash show single page site"""
|
"""Accept a site 'name', if pubkey then show multi-page site, if hash show single page site"""
|
||||||
resp: str = 'Not Found'
|
resp: str = 'Not Found'
|
||||||
|
mime_type = 'text/html'
|
||||||
|
|
||||||
# If necessary convert the name to base32 from mnemonic
|
# If necessary convert the name to base32 from mnemonic
|
||||||
if mnemonickeys.DELIMITER in name:
|
if mnemonickeys.DELIMITER in name:
|
||||||
|
|
|
@ -126,7 +126,12 @@ def kill_daemon():
|
||||||
'''
|
'''
|
||||||
logger.warn('Stopping the running daemon...', timestamp = False, terminal=True)
|
logger.warn('Stopping the running daemon...', timestamp = False, terminal=True)
|
||||||
try:
|
try:
|
||||||
os.fork()
|
# On platforms where we can, fork out to prevent locking
|
||||||
|
try:
|
||||||
|
pid = os.fork()
|
||||||
|
if pid != 0: return
|
||||||
|
except (AttributeError, OSError) as e: pass
|
||||||
|
|
||||||
events.event('daemon_stop')
|
events.event('daemon_stop')
|
||||||
net = NetController(config.get('client.port', 59496))
|
net = NetController(config.get('client.port', 59496))
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -33,7 +33,13 @@ SCRIPT_NAME = os.path.dirname(os.path.realpath(__file__)) + f'/../../{onionrvalu
|
||||||
|
|
||||||
def restart():
|
def restart():
|
||||||
logger.info('Restarting Onionr', terminal=True)
|
logger.info('Restarting Onionr', terminal=True)
|
||||||
os.fork()
|
|
||||||
|
# On platforms where we can, fork out to prevent locking
|
||||||
|
try:
|
||||||
|
pid = os.fork()
|
||||||
|
if pid != 0: return
|
||||||
|
except (AttributeError, OSError) as e: pass
|
||||||
|
|
||||||
daemonlaunch.kill_daemon()
|
daemonlaunch.kill_daemon()
|
||||||
while localcommand.local_command('ping', maxWait=8) == 'pong!':
|
while localcommand.local_command('ping', maxWait=8) == 'pong!':
|
||||||
time.sleep(0.3)
|
time.sleep(0.3)
|
||||||
|
|
Loading…
Reference in New Issue