Luffy Posted December 28, 2017 at 04:57 AM Share Posted December 28, 2017 at 04:57 AM Pessoal, alguém poderia me ajudar editar este start.py para só iniciar o auth, db, canal 1 e canal 99 ao invés de também iniciar o canal 2, 3 e 4? Spoiler #!/usr/local/bin/python2.7 #### @martysama0134 start scripts #### from subprocess import check_output as sp_co, call as sp_call, CalledProcessError as sp_CalledProcessError from os import getcwd as os_getcwd, chdir as os_chdir from platform import system as p_system v_system = p_system() class M2TYPE: SERVER, DB, AUTH, CHANFOLDER, CHANNEL, CORE = xrange(6) NOCHAN = 0 def fShell(szCmd, bRet=False): try: if bRet: return sp_co(szCmd, shell=True)[:-1] # remove final \n else: return sp_call(szCmd, shell=True) except sp_CalledProcessError: return -1 def keyCheck(dict, key, elem={}): try: dict[key] except KeyError: dict[key]=elem proclist={} whichlist={"serv":[], "chan":[]} def staInit(): global proclist ## base from json import load as j_loads with open("start.list", "r") as fList: mList = j_loads(fList) proclist.clear() for dic1 in mList: keyCheck(proclist, dic1["serv"]) if dic1["type"]==M2TYPE.DB: keyCheck(proclist[dic1["serv"]], "db", []) proclist[dic1["serv"]]["db"].append(dic1) elif dic1["type"]==M2TYPE.AUTH or dic1["type"]==M2TYPE.CORE: keyCheck(proclist[dic1["serv"]], "core", []) proclist[dic1["serv"]]["core"].append(dic1) if dic1["type"]==M2TYPE.CORE: keyCheck(proclist[dic1["serv"]], "chan", set()) proclist[dic1["serv"]]["chan"].add(dic1["chan"]) def staStart(serv=(), chan={}): from time import sleep as t_sleep szPWD=os_getcwd() global whichlist whichlist["serv"]=serv whichlist["chan"]=chan keyCheck(whichlist["chan"], "all", ()) def RunInMe(tmpProcList, bSkipCheck=False): addFlags = "" if dwLogLevel: addFlags += " -l %d " % dwLogLevel if dwIP: addFlags += " -I %s " % dwIP for dic1 in tmpProcList: # skip not requested servers if (whichlist["serv"]) and (dic1["serv"] not in whichlist["serv"]): continue if not bSkipCheck and dic1["type"]==M2TYPE.CORE: # skip not requested channels keyCheck(whichlist["chan"], dic1["serv"], ()) if whichlist["chan"]["all"]: # print "all",whichlist["chan"]["all"] if not dic1["chan"] in whichlist["chan"]["all"]: continue if whichlist["chan"][dic1["serv"]]: # print dic1["serv"] if not dic1["chan"] in whichlist["chan"][dic1["serv"]]: continue # print dic1 if v_system in ("FreeBSD", "Linux"): if not fShell("""ps afx | fgrep "./%s" | fgrep -v grep | awk '{print $1}'"""%dic1["name"], True): # print dic1["name"], "not found" # goto process file # print("cd %s"%dic1["path"]) os_chdir(dic1["path"]) # start process # print("./%s &"%dic1["name"]) # fShell("./%s &"%dic1["name"]) fShell("./%s %s &" % (dic1["name"], addFlags)) # goto base again os_chdir(szPWD) elif v_system=="Windows": # easy workaround for windows (only for debug purposes) # fShell("""tasklist /v | findstr "%s" """%dic1["name"]) os_chdir(dic1["path"]) fShell("start /b %s %s" % (dic1["name"], addFlags)) os_chdir(szPWD) for k1 in proclist.iterkeys(): RunInMe(proclist[k1]["db"]) # RunInMe(proclist[k1]["db"], True) t_sleep(3) RunInMe(proclist[k1]["core"]) if __name__ == "__main__": from getopt import getopt as g_getopt, GetoptError as g_GetoptError from sys import exit as s_exit, argv as s_argv try: bIsAll = True bHasPrompt = False # baseChan = [1,99] # ch1 and ch99 are required baseChan = [] listWhich = [] szWhichServ = "" szWhichChan = {} dwLogLevel = 0 dwIP = "" optlist, args = g_getopt(s_argv[1:],"psl:I:",('prompt','selective','whichserv=','whichchan=','level=','IP=')) for o, a in optlist: if o in ('-s', '--selective'): bIsAll=False elif o in ('-p', '--prompt'): bHasPrompt=True elif o in ('-l', '--level'): dwLogLevel=int(a) elif o in ('-I', '--IP'): dwIP=a elif o in ('-ws', '--whichserv'): szWhichServ=a if szWhichServ: bIsAll=False elif o in ('-wc', '--whichchan'): szWhichChan["all"]=a if szWhichChan: bIsAll=False staInit() if bHasPrompt: bIsAll=False print "Servers available to run:", " ".join(proclist.iterkeys()) szTmp1 = raw_input("Enter which servers you want to start: (nothing=all)\ne.g. srv1 srv2 srv3\n>>> ") if szTmp1.strip(): szWhichServ=szTmp1 for iChan in szTmp1.strip().split(): if iChan not in proclist.iterkeys(): print "Server not found:", iChan continue print "Channels available to run for %s:"%iChan, " ".join([str(i) for i in proclist[iChan]["chan"]]) szTmp2 = raw_input("Enter which additional channels you want to start: (nothing=all)\ne.g. 1 2 99\n>>> ") if szTmp2.strip(): # print szTmp1, szTmp2 szWhichChan[iChan]=szTmp2 # print proclist,whichlist if bIsAll: staStart() else: tmpWhichServ,tmpWhichChan=[],{} # print "---",szWhichServ,"---" # print "---",szWhichChan,"---" if szWhichServ: tmpWhichServ=szWhichServ.split() if szWhichChan: for iKey in szWhichChan.iterkeys(): tmpWhichChan[iKey]=set([int(i) for i in szWhichChan[iKey].split()]) # tmpWhichChan["all"]=list(set([int(i) for i in szWhichChan["all"].split()] + baseChan)) # print tmpWhichServ, "\n", tmpWhichChan staStart(serv=tmpWhichServ, chan=tmpWhichChan) except g_GetoptError, err: s_exit(err) # Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted December 28, 2017 at 02:09 PM Share Posted December 28, 2017 at 02:09 PM No gerador, agora já tens opção para apenas 1ch Não é no start.py que mudas, mas sim em start.list. Basta apagares os outros ch do start.list e clear.list, e os mesmos já não serão iniciados nem limpos Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now