GIF89a; EcchiShell v1.0
//bin/

Mass Deface Email Grabber

>= 1 entry += 1 if entry == nr_entries: break if entry == nr_entries: break return bitmasklist def cpustring_to_list(cpustr): """Convert a string of numbers to an integer list. Given a string of comma-separated numbers and number ranges, return a simple sorted list of the integers it represents. This function will throw exceptions for badly-formatted strings. Returns a list of integers.""" fields = cpustr.strip().split(",") cpu_list = [] for field in fields: ends = field.split("-") if len(ends) > 2: raise "Syntax error" if len(ends) == 2: cpu_list += range(int(ends[0]), int(ends[1])+1) else: cpu_list += [int(ends[0])] return list(set(cpu_list)) def show_settings(pid, when, cpu_list_mode): affinity = schedutils.get_affinity(pid) if cpu_list_mode: mask = ",".join([str(a) for a in affinity]) else: mask = ",".join(["%x" % a for a in hexbitmask(affinity)]) print "pid %d's %s affinity mask: %s" % (pid, when, mask) def change_settings(pid, affinity, cpu_list_mode): if cpu_list_mode: try: affinity = [ int(a) for a in affinity.split(",") ] except: affinity = cpustring_to_list(affinity) else: affinity = bitmasklist(affinity) try: schedutils.set_affinity(pid, affinity) except SystemError, err: print "sched_setaffinity: %s" % err[1] print "failed to set pid %d's affinity" % pid def main(): args = sys.argv[1:] if not args: usage() return cpu_list_mode = False while True: o = args.pop(0) if o in ("-h", "--help"): usage() return elif o in ("-c", "--cpu-list"): cpu_list_mode = True elif o in ("-p", "--pid"): if len(args) > 1: affinity = args.pop(0) pid = int(args.pop(0)) show_settings(pid, "current", cpu_list_mode) change_settings(pid, affinity, cpu_list_mode) show_settings(pid, "new", cpu_list_mode) else: pid = int(args.pop(0)) show_settings(pid, "current", cpu_list_mode) return else: break affinity = o change_settings(0, affinity, cpu_list_mode) os.execvp(args[0], args) if __name__ == '__main__': main()