-
Notifications
You must be signed in to change notification settings - Fork 4
/
bisprocmon.py
60 lines (48 loc) · 1.68 KB
/
bisprocmon.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import psutil
import time
import tornado.ioloop
import tornado.web
_processes_ = [
["Node", "node"],
["Casino Interface", "zircodice_web.py"],
["Casino Engine", "zircodice_dappie.py"],
["Ledger Explorer", "ledger_explorer.py"],
["Wallet", "wallet.py"],
["Anonymizer", "anon_dappie.py"],
["HTML Interpreter", "html_dappie.py"],
["Geo", "geo.py"],
["Bisdom", "bisdom.py"],
["Twitter Bot", "twitterizer.py"],
["Wallet Server", "wallet_server.py"]]
class MainHandler(tornado.web.RequestHandler):
def write_status(self, name, stat):
color = 'green' if stat else 'red'
stat = 'OK' if stat else 'Not running'
self.write("<font color='{}'>"\
"{}: <strong>{}</strong>"\
"</font>"\
"<br>".format(color, stat, name))
def get(self):
pnames = []
del pnames [:]
for process in psutil.pids():
try:
p = psutil.Process(process) # The pid of desired process
pnames.append(p.cmdline())
except:
pass
for process in _processes_:
name, fn = process
self.write_status(name, fn in str(pnames))
last_updated = time.strftime("%Y/%m/%d,%H:%M:%S", time.gmtime(time.time()))
self.write("<br>"\
"Last updated: {}".format(last_updated))
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
(r"/static/(.*)", tornado.web.StaticFileHandler, {"path": "static"}),
])
if __name__ == "__main__":
app = make_app()
app.listen(80)
tornado.ioloop.IOLoop.current().start()