From 7971cb0aa3e517a53f0ce6d3ee9bc3179041ccb8 Mon Sep 17 00:00:00 2001 From: John Klug Date: Wed, 25 May 2022 17:12:18 -0500 Subject: mLinux 6 --- scripts/swabber-strace-attach | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 scripts/swabber-strace-attach (limited to 'scripts/swabber-strace-attach') diff --git a/scripts/swabber-strace-attach b/scripts/swabber-strace-attach new file mode 100755 index 0000000..bb0391a --- /dev/null +++ b/scripts/swabber-strace-attach @@ -0,0 +1,31 @@ +#!/usr/bin/env python +import os +import sys +import subprocess + +# Detach from the controlling terminal and parent process by forking twice to daemonize ourselves, +# then run the command passed as argv[1]. Send log data to argv[2]. + +pid = os.fork() +if (pid == 0): + os.setsid() + pid = os.fork() + if (pid != 0): + os._exit(0) +else: + sys.exit() + + +si = file(os.devnull, 'r') +so = file(sys.argv[2], 'w') +se = so + +# Replace those fds with our own +os.dup2(si.fileno(), sys.stdin.fileno()) +os.dup2(so.fileno(), sys.stdout.fileno()) +os.dup2(se.fileno(), sys.stderr.fileno()) + +ret = subprocess.call(sys.argv[1], shell=True) + +os._exit(ret) + -- cgit v1.2.3