Force shutdown, fix cx_Freeze startup

This commit is contained in:
Joseph Coffland 2016-12-16 10:33:29 -08:00
parent 9fb8e67164
commit aaf80f4e2d
4 changed files with 45 additions and 45 deletions

View File

@ -36,47 +36,46 @@ def set_proc_name(name):
libc.prctl(15, byref(buff), 0, 0, 0)
if __name__ == '__main__':
if sys.platform.startswith('linux'): set_proc_name('FAHControl')
if sys.platform.startswith('linux'): set_proc_name('FAHControl')
# If present, remove the Launch Services -psn_xxx_xxx argument
if len(sys.argv) > 1 and sys.argv[1][:4] == '-psn':
del sys.argv[1]
# If present, remove the Launch Services -psn_xxx_xxx argument
if len(sys.argv) > 1 and sys.argv[1][:4] == '-psn':
del sys.argv[1]
parser = OptionParser(usage = 'Usage: %prog [options]')
parser = OptionParser(usage = 'Usage: %prog [options]')
parser.add_option('--exit', help = 'Tell the running application to exit',
action = 'store_true', dest = 'exit')
options, args = parser.parse_args()
# Tell app to exit
if options.exit:
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(single_app_addr)
sock.send('EXIT')
if sock.recv(1024).strip() == 'OK': print 'Ok'
except Exception, e: pass
sys.exit(0)
# Add executable path to PATH
if getattr(sys, 'frozen', False): path = os.path.dirname(sys.executable)
else: path = os.path.dirname(__file__)
path = os.path.realpath(path)
os.environ['PATH'] = path + os.pathsep + os.environ['PATH']
# Load Glade
dir = os.path.dirname(inspect.getfile(inspect.currentframe()))
if not dir: dir = '.'
glade = dir + '/fah/FAHControl.glade'
if os.path.exists(glade): app = FAHControl(glade)
else:
from fah.FAHControl_glade import glade_data
app = FAHControl(glade_data)
parser.add_option('--exit', help = 'Tell the running application to exit',
action = 'store_true', dest = 'exit')
options, args = parser.parse_args()
# Tell app to exit
if options.exit:
try:
app.run()
except Exception, e:
print e
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(single_app_addr)
sock.send('EXIT')
if sock.recv(1024).strip() == 'OK': print 'Ok'
except Exception, e: pass
sys.exit(0)
# Add executable path to PATH
if getattr(sys, 'frozen', False): path = os.path.dirname(sys.executable)
else: path = os.path.dirname(__file__)
path = os.path.realpath(path)
os.environ['PATH'] = path + os.pathsep + os.environ['PATH']
# Load Glade
dir = os.path.dirname(inspect.getfile(inspect.currentframe()))
if not dir: dir = '.'
glade = dir + '/fah/FAHControl.glade'
if os.path.exists(glade): app = FAHControl(glade)
else:
from fah.FAHControl_glade import glade_data
app = FAHControl(glade_data)
try:
app.run()
except Exception, e:
print e

View File

@ -534,10 +534,10 @@ class FAHControl(SingleAppServer):
self.window_accel_group = ag
key, mod = gtk.accelerator_parse("<meta>w")
ag.connect_group(key, mod, gtk.ACCEL_VISIBLE,
osx_accel_window_close)
osx_accel_window_close)
key, mod = gtk.accelerator_parse("<meta>m")
ag.connect_group(key, mod, gtk.ACCEL_VISIBLE,
osx_accel_window_minimize)
osx_accel_window_minimize)
self.window.add_accel_group(ag)
except Exception, e: print e
@ -710,7 +710,7 @@ class FAHControl(SingleAppServer):
self.db.flush_queued()
except Exception, e: print e
self.shutdown() # Shutdown SingleAppServer
sys.exit(0) # Force shutdown
def set_status(self, text):

View File

@ -58,9 +58,9 @@ class SingleAppServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
self, single_app_addr, SingleAppRequestHandler)
thread = threading.Thread(target = self.serve_forever)
# Exit the server thread when the main thread terminates
thread.setDaemon(True)
thread.start()
# Exit the server thread when the main thread terminates
thread.setDaemon(True)
thread.start()
def check_for_instance(self):

View File

@ -67,6 +67,7 @@ if sys.platform == 'darwin':
elif sys.platform == 'win32':
from cx_Freeze import setup, Executable
# Change base to 'Console' for debugging
e = Executable(app, base = 'Win32GUI', icon = 'images/FAHControl.ico')
options = {
'build_exe': {