~george-edison55/audataserver-proxy/trunk

« back to all changes in this revision

Viewing changes to audataserver-proxy

  • Committer: Nathan Osman
  • Date: 2011-11-02 06:40:54 UTC
  • Revision ID: admin@quickmediasolutions.com-20111102064054-vzeqhhtgp1ay2mfq
Enhanced the error checking and correction in the init.d script.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
from audataserver import threaded_aulibrary
28
28
from getopt       import getopt, GetoptError
29
29
from json         import dumps
30
 
from os           import getpid, remove
31
 
from sys          import argv, exit
 
30
from os           import fork, getpid, remove
 
31
from sys          import argv, exit, stderr
32
32
import cherrypy
33
33
 
34
34
 
67
67
try:
68
68
    options, args = getopt(argv[1:], 'p:', ['pid-file='])
69
69
except GetoptError as e:
70
 
    print str(e)
71
 
    exit()
 
70
    print >> stderr, str(e)
 
71
    exit(1)
72
72
 
73
73
# Parse the command line options
74
74
pid_filename = None
75
75
for option, value in options:
76
76
    if option in ['-p', '--pid-file']:
77
77
        pid_filename = value
78
 
        pid_file = open(pid_filename, 'w')
79
 
        pid_file.write(str(getpid()))
80
 
        pid_file.close()
 
78
        # Check to see if the file exists
 
79
        # We have encountered an error if it does
 
80
        try:
 
81
            open(pid_filename, 'r')
 
82
            print >> stderr, '''The file %s already exists. This likely indicates that the application is already running. If this is not the case, please delete the lock file.''' % pid_filename
 
83
            exit(1)
 
84
        except IOError as e:
 
85
            if fork():
 
86
                exit(0)
 
87
            pid_file = open(pid_filename, 'w')
 
88
            pid_file.write(str(getpid()))
 
89
            pid_file.close()
81
90
 
82
91
cherrypy.engine.data_manager = DataManager(cherrypy.engine)
83
92
cherrypy.quickstart(DataServerApp(), config={'global': {