mirror of
https://github.com/moparisthebest/SickRage
synced 2024-11-10 19:35:08 -05:00
Fix for restart and PID issues.
This commit is contained in:
parent
6558b8ac71
commit
42b621103f
23
SickBeard.py
23
SickBeard.py
@ -19,12 +19,14 @@
|
||||
|
||||
# Check needed software dependencies to nudge users to fix their setup
|
||||
import sys
|
||||
|
||||
if sys.version_info < (2, 6):
|
||||
print "Sorry, requires Python 2.6 or 2.7."
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
import Cheetah
|
||||
|
||||
if Cheetah.Version[0] != '2':
|
||||
raise ValueError
|
||||
except ValueError:
|
||||
@ -35,6 +37,7 @@ except:
|
||||
sys.exit(1)
|
||||
|
||||
import os
|
||||
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), 'lib')))
|
||||
|
||||
# We only need this for compiling an EXE and I will just always do that on 2.6+
|
||||
@ -67,6 +70,7 @@ signal.signal(signal.SIGTERM, sickbeard.sig_handler)
|
||||
|
||||
throwaway = datetime.datetime.strptime('20110101', '%Y%m%d')
|
||||
|
||||
|
||||
def loadShowsFromDB():
|
||||
"""
|
||||
Populates the showList with shows from the database
|
||||
@ -80,7 +84,9 @@ def loadShowsFromDB():
|
||||
curShow = TVShow(int(sqlShow["indexer"]), int(sqlShow["indexer_id"]))
|
||||
sickbeard.showList.append(curShow)
|
||||
except Exception, e:
|
||||
logger.log(u"There was an error creating the show in " + sqlShow["location"] + ": " + str(e).decode('utf-8'), logger.ERROR)
|
||||
logger.log(
|
||||
u"There was an error creating the show in " + sqlShow["location"] + ": " + str(e).decode('utf-8'),
|
||||
logger.ERROR)
|
||||
logger.log(traceback.format_exc(), logger.DEBUG)
|
||||
|
||||
# TODO: update the existing shows if the showlist has something in it
|
||||
@ -101,7 +107,7 @@ def daemonize():
|
||||
sys.stderr.write("fork #1 failed: %d (%s)\n" % (e.errno, e.strerror))
|
||||
sys.exit(1)
|
||||
|
||||
os.setsid() # @UndefinedVariable - only available in UNIX
|
||||
os.setsid(pid) # @UndefinedVariable - only available in UNIX
|
||||
|
||||
# Make sure I can read my own files and shut out others
|
||||
prev = os.umask(0)
|
||||
@ -139,6 +145,7 @@ def daemonize():
|
||||
os.dup2(stdout.fileno(), sys.stdout.fileno())
|
||||
os.dup2(stderr.fileno(), sys.stderr.fileno())
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
TV for me
|
||||
@ -194,7 +201,9 @@ def main():
|
||||
threading.currentThread().name = "MAIN"
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "qfdp::", ['quiet', 'forceupdate', 'daemon', 'port=', 'pidfile=', 'nolaunch', 'config=', 'datadir=']) # @UnusedVariable
|
||||
opts, args = getopt.getopt(sys.argv[1:], "qfdp::",
|
||||
['quiet', 'forceupdate', 'daemon', 'port=', 'pidfile=', 'nolaunch', 'config=',
|
||||
'datadir=']) # @UnusedVariable
|
||||
except getopt.GetoptError:
|
||||
print "Available Options: --quiet, --forceupdate, --port, --daemon, --pidfile, --config, --datadir"
|
||||
sys.exit()
|
||||
@ -300,10 +309,14 @@ def main():
|
||||
CUR_DB_VERSION = db.DBConnection().checkDBVersion()
|
||||
if CUR_DB_VERSION > 0:
|
||||
if CUR_DB_VERSION < MIN_DB_VERSION:
|
||||
raise SystemExit("Your database version (" + str(db.DBConnection().checkDBVersion()) + ") is too old to migrate from with this version of SickRage (" + str(MIN_DB_VERSION) + ").\n" + \
|
||||
raise SystemExit("Your database version (" + str(
|
||||
db.DBConnection().checkDBVersion()) + ") is too old to migrate from with this version of SickRage (" + str(
|
||||
MIN_DB_VERSION) + ").\n" + \
|
||||
"Upgrade using a previous version of SB first, or start with no database file to begin fresh.")
|
||||
if CUR_DB_VERSION > MAX_DB_VERSION:
|
||||
raise SystemExit("Your database version (" + str(db.DBConnection().checkDBVersion()) + ") has been incremented past what this version of SickRage supports (" + str(MAX_DB_VERSION) + ").\n" + \
|
||||
raise SystemExit("Your database version (" + str(
|
||||
db.DBConnection().checkDBVersion()) + ") has been incremented past what this version of SickRage supports (" + str(
|
||||
MAX_DB_VERSION) + ").\n" + \
|
||||
"If you have used other forks of SB, your database may be unusable due to their modifications.")
|
||||
|
||||
# Initialize the config and our threads
|
||||
|
@ -1303,6 +1303,7 @@ def saveAndShutdown(restart=False):
|
||||
logger.log(u"Removing pidfile " + str(PIDFILE))
|
||||
remove_pid_file(PIDFILE)
|
||||
|
||||
status = 0
|
||||
if restart:
|
||||
install_type = versionCheckScheduler.action.install_type
|
||||
|
||||
@ -1325,9 +1326,11 @@ def saveAndShutdown(restart=False):
|
||||
popen_list += ['--nolaunch']
|
||||
logger.log(u"Restarting SickRage with " + str(popen_list))
|
||||
logger.close()
|
||||
subprocess.Popen(popen_list, cwd=os.getcwd())
|
||||
p = subprocess.Popen(popen_list, cwd=os.getcwd())
|
||||
p.wait()
|
||||
status = p.returncode
|
||||
|
||||
os._exit(0)
|
||||
os._exit(status)
|
||||
|
||||
|
||||
def invoke_command(to_call, *args, **kwargs):
|
||||
|
Loading…
Reference in New Issue
Block a user