Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4268)

Unified Diff: build/android/forked_adb_logcat_monitor.py

Issue 25679007: Add a new script forked_adb_logcat_monitor.py. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/buildbot/bb_device_steps.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/forked_adb_logcat_monitor.py
diff --git a/build/android/forked_adb_logcat_monitor.py b/build/android/forked_adb_logcat_monitor.py
new file mode 100755
index 0000000000000000000000000000000000000000..dc7764015fdac2686fb47320dc15f0c620703971
--- /dev/null
+++ b/build/android/forked_adb_logcat_monitor.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+#
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Saves logcats from all connected devices but in a separate, forked process.
+
+Usage: forked_adb_logcat_monitor.py <base_dir> [<adb_binary_path>]
+
+This script is similar to adb_logcat_monitor.py, but spawns logcat watchers in
+separate forked process. See adb_logcat_monitor.py for more info.
+"""
+
+import os
+import sys
+
+import adb_logcat_monitor
+
+if __name__ == '__main__':
navabi 2013/10/03 23:51:04 move the body of this into a main function. if 2 <
+ if 2 <= len(sys.argv) <= 3:
+ print 'adb_logcat_monitor: Initializing'
+ # Spawn a detached child process.
+ try:
+ pid = os.fork()
+ if pid > 0:
+ # exit first parent
+ sys.exit(0)
+ except OSError, e:
+ sys.stderr.write("fork #1 failed: %d (%s)\n" % (e.errno, e.strerror))
+ sys.exit(1)
+
+ # decouple from parent environment
+ os.chdir("/")
+ os.setsid()
+ os.umask(0)
+
+ # do second fork
navabi 2013/10/03 23:51:04 Why is there a second fork? For the adb_reboot_on_
+ try:
+ pid = os.fork()
+ if pid > 0:
+ # exit from second parent
+ sys.exit(0)
+ except OSError, e:
+ sys.stderr.write("fork #2 failed: %d (%s)\n" % (e.errno, e.strerror))
+ sys.exit(1)
+
+ # redirect standard file descriptors
+ sys.stdout.flush()
+ sys.stderr.flush()
+ si = file('/dev/null', 'r')
+ so = file('/dev/null', 'a+')
+ se = file('/dev/null', 'a+', 0)
+ os.dup2(si.fileno(), sys.stdin.fileno())
+ os.dup2(so.fileno(), sys.stdout.fileno())
+ os.dup2(se.fileno(), sys.stderr.fileno())
+
+ sys.exit(adb_logcat_monitor.SpawnLogcatWatchers(*sys.argv[1:3]))
+
+ print 'Usage: %s <base_dir> [<adb_binary_path>]' % sys.argv[0]
« no previous file with comments | « build/android/buildbot/bb_device_steps.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698