From e85e9295fb749b1042b15620c6a355ab69101f00 Mon Sep 17 00:00:00 2001 From: Tommy Persson <tommy.persson@liu.se> Date: Mon, 19 Jan 2015 20:47:35 +0100 Subject: [PATCH] bagserver/client --- src/bagserver.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/bagserver.py b/src/bagserver.py index faa2437..1fe0e36 100755 --- a/src/bagserver.py +++ b/src/bagserver.py @@ -1,15 +1,34 @@ #!/usr/bin/env python +import subprocess +import sys +import signal +import os + import rospy from lrs_srvs.srv import * +procs = {} + def start_recording(req): print "start_recording", req + command = "rosbag record -o " + req.uuid + print "COMMAND: ", command, " ".join(req.topics) + args = ["rosbag", "record", "-o", req.uuid] + args += req.topics + procs[req.uuid] = subprocess.Popen(args, 0, None, sys.stdout, sys.stdout, + preexec_fn=os.setsid) + print "STARTING: ", procs[req.uuid] return BSStartRecordingResponse(True, 0, "") def stop_recording(req): print "stop_recording", req + print "STOPPING: ", procs[req.uuid] + pid = procs[req.uuid].pid +# procs[req.uuid].kill() +# procs[req.uuid].send_signal(signal.CTRL_C_EVENT) + os.killpg(os.getpgid(pid), signal.SIGINT) return BSStopRecordingResponse(True, 0, "") if __name__ == "__main__": -- GitLab