-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.py
More file actions
71 lines (56 loc) · 2.32 KB
/
Copy pathserver.py
File metadata and controls
71 lines (56 loc) · 2.32 KB
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
61
62
63
64
65
66
67
68
69
70
71
import json
import os
import sys
import logging
import time
import mmap
import subprocess
from random import sample
# ----------------------------------------------------------------------------------------------------------------------
# Logging
# ----------------------------------------------------------------------------------------------------------------------
logging.basicConfig(format='%(asctime)s %(name)s %(message)s', level=logging.DEBUG)
Logger = logging.getLogger(__name__)
# ----------------------------------------------------------------------------------------------------------------------
# Defines
# ----------------------------------------------------------------------------------------------------------------------
ShmPath = "/dev/shm"
Rand = ["add", "sub", "mul", "div"]
# ----------------------------------------------------------------------------------------------------------------------
# functions
# ----------------------------------------------------------------------------------------------------------------------
# ----------------------------------------------------------------------------------------------------------------------
# main loop
# ----------------------------------------------------------------------------------------------------------------------
def main():
# create file first
fn = os.path.normpath(ShmPath + '/' + 'suchfoo')
d = {"cnt": 0, "msg": "Hello World"}
# write a simple example file
Logger.debug("create: {}".format(fn))
f = open(fn, "w")
f.write(json.dumps(d))
f.close()
Logger.debug("Writing to file")
# fi = open(fn, 'r+')
# mm = mmap.mmap(fi.fileno(), 0, access=mmap.ACCESS_WRITE)
# Logger.debug("Writing to file")
# mm.write(json.dumps(d))
# mm.close()
Running = True
try:
while Running:
d["cnt"] += 1
#d['msg'] = 'counter inc to: %d' %d['cnt']
d["msg"] = sample(Rand, 1)[0]
with open(fn, 'r+') as f:
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_WRITE)
Logger.debug("Writing to file")
mm.write(json.dumps(d).encode())
mm.close()
time.sleep(1)
except KeyboardInterrupt:
Running = False
os.system("rm {}".format(fn))
if __name__ == '__main__':
main()