Tradução: Como obter a lista de processos pelo terminal
Pergunta feita várias vezes para InterSystems
Isso pode ser obtido usando a consulta AllFields query da classe %SYS.ProcessQuery.
Para obter mais detalhes, consulte o documento Process (Job)【IRIS】/Process (Job).
Um exemplo de execução no terminal é o seguinte.
USER>set stmt=##class(%SQL.Statement).%New()
USER>set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
USER>write st // you can call %Execute() when st = 11
USER>set rset=stmt.%Execute()
USER>while rset.%Next() { write rset.%Get("JobNumber"),"-",rset.%Get("Pid"),"-",rset.%Get("OSUserName"),"-",rset.%Get("CurrentDevice"),"-",rset.%Get("Routine"),"-",rset.%Get("State"),"-",rset.%Get("UserName"),!}Por exemplo, o mesmo como um método.
ClassMethod ShowJob()
{
set stmt=##class(%SQL.Statement).%New()
set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
set rset=stmt.%Execute()
while rset.%Next() {
write rset.%Get("JobNumber"),$Char(9)
write rset.%Get("Pid"),$Char(9)
write rset.%Get("OSUserName"),$Char(9)
write rset.%Get("CurrentDevice"),$Char(9)
write rset.%Get("Routine"),$Char(9)
write rset.%Get("State"),$Char(9)
write rset.%Get("UserName"),!
}
}Discussão (1)0
Comments
Qualquer dica para melhoria da tradução me envie um direct :)