コード例 #1
0
ファイル: tools.py プロジェクト: testacc/screen-session
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)
コード例 #2
0
ファイル: tools.py プロジェクト: testacc/screen-session
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)
コード例 #3
0

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)
コード例 #4
0
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()