def kill_current_group(ss,bKillHomeWindow=False,other_wins=[],homewindow=-1): if homewindow<0: cwin,ctitle=ss.get_number_and_title() homewindow=int(cwin) else: homewindow=int(homewindow) protected=tuple([(homewindow)]+other_wins) print (protected) cgroup=ss.get_group() print ('removing windows from group %s'%cgroup) while True: wins=sc.parse_windows(sc.get_windows(ss.pid))[0] print( wins) if len(wins)<=len(protected): break for w in wins: if w not in protected: print('removing %s'%w) ss.kill(w) for w in other_wins: ss.kill(w) for w in protected: if w != homewindow: print('removing protected %s'%w) ss.kill(w) if bKillHomeWindow: print('removing homewindow %s'%homewindow) ss.kill(homewindow)
def kill_group(session,win): print ('killing group %s'%win) ss=ScreenSaver(session,'/dev/null','/dev/null') tty=ss.tty(win) if tty!="telnet": print('This window is not a group. Aborting.') return ss.select(win) wins=sc.parse_windows(sc.get_windows(session))[0] print wins for w in wins: print('killing %s'%w)
def out(str, active=False): if active: sys.stdout.write(str + "\n") bPrint = False session = "%s" % sys.argv[1] out("session = " + session, bPrint) session_arg = "-S %s" % session cwin = sc.get_current_window(session) windows_old = sc.parse_windows(sc.get_windows(session))[0] out(str(windows_old), bPrint) f = os.popen("screen %s -Q @tty" % session_arg) ctty = f.readline() f.close() out(ctty, bPrint) pids = sc.get_tty_pids(ctty) # pids=sc.sort_by_ppid(pids) thepid = pids[len(pids) - 1] thedir = sc.get_pid_info(thepid)[0] out(thedir, bPrint) os.chdir(thedir)
if __name__ == "__main__": sys.stdout = open(logfile, "w") sys.stderr = sys.stdout session = sys.argv[1] win = ( subprocess.Popen("screen -S %s -Q @number" % (session), shell=True, stdout=subprocess.PIPE) .communicate()[0] .strip() .split(" ", 1)[0] ) print("win before get_regions_count: " + win) # regions_c=get_regions_count_no_layout(session,) regions_c = get_regions_count(session, dumpfile) ident = subprogram + " " + inputfile global win_history win_history = get_win_history(session, regions_c) w1 = sc.parse_windows(sc.get_windows(session))[0] start_subprograms(session, subprogram, inputfile, regions_c, 5) w2 = sc.parse_windows(sc.get_windows(session))[0] print(w1) print(w2) wins = sc.find_new_windows(w1, w2) print(wins) signal.signal(signal.SIGUSR1, handler) time.sleep(4) cleanup()