Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
emulab-devel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
143
Issues
143
List
Boards
Labels
Service Desk
Milestones
Merge Requests
6
Merge Requests
6
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
emulab
emulab-devel
Commits
719f3a61
Commit
719f3a61
authored
Jun 27, 2013
by
Srikanth Raju
Committed by
Leigh B Stoller
Jul 23, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use manual(ish) daemonization for Meta server
This was so we won't need a daemon library
parent
cd038b34
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
11 deletions
+27
-11
tmcd/Ec2MetaServer.py.in
tmcd/Ec2MetaServer.py.in
+27
-11
No files found.
tmcd/Ec2MetaServer.py.in
View file @
719f3a61
...
@@ -6,8 +6,6 @@ import os
...
@@ -6,8 +6,6 @@ import os
import
sys
import
sys
import
syslog
import
syslog
import
mysql.connector
import
mysql.connector
import
daemon
from
daemon
import
pidfile
# This requires Python 2.6+
# This requires Python 2.6+
class
Ec2MetaHandler
(
BaseHTTPRequestHandler
):
class
Ec2MetaHandler
(
BaseHTTPRequestHandler
):
...
@@ -243,15 +241,33 @@ class Ec2MetaHandler(BaseHTTPRequestHandler):
...
@@ -243,15 +241,33 @@ class Ec2MetaHandler(BaseHTTPRequestHandler):
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
from
BaseHTTPServer
import
HTTPServer
from
BaseHTTPServer
import
HTTPServer
import
socket
import
socket
metad
=
daemon
.
DaemonContext
()
metad
.
pidfile
=
pidfile
.
TimeoutPIDLockFile
(
'/var/run/tmcd-meta.pid'
,
acquire_timeout
=
10
)
#
llog
=
open
(
"@prefix@/log/tmcd-meta.log"
,
"w+"
)
# Daemonize. We redirect our output into a log file cause I have no
metad
.
stdout
=
llog
# idea what is going to use plain print.
metad
.
stderr
=
llog
# Lifted from xmlrpc/sslxmlrpc_server.py.in
#
with
metad
:
try
:
server
=
HTTPServer
((
socket
.
gethostbyname
(
socket
.
gethostname
()),
8787
),
fp
=
open
(
"@prefix@/log/tmcd-meta.log"
,
"a"
);
sys
.
stdout
=
fp
sys
.
stderr
=
fp
sys
.
stdin
.
close
();
pass
except
:
print
"Could not open log file for append"
sys
.
exit
(
1
);
pass
pid
=
os
.
fork
()
if
pid
:
os
.
system
(
"echo "
+
str
(
pid
)
+
" > /var/run/tmcd-meta.pid"
)
sys
.
exit
(
0
)
pass
os
.
setsid
();
pass
server
=
HTTPServer
((
socket
.
gethostbyname
(
socket
.
gethostname
()),
8787
),
Ec2MetaHandler
)
Ec2MetaHandler
)
server
.
serve_forever
()
server
.
serve_forever
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment