Executar script em terminal oculto [RESOLVIDO]

1. Executar script em terminal oculto [RESOLVIDO]

Daniel Camilo da Silva
DebDann

(usa Debian)

Enviado em 29/06/2016 - 07:39h

Olá pessoal!

Tenho um script que abrem 4 terminais, e todos ficam aberto na tela...gostaria de que quando fossem executados os terminais ficassem rodando em oculto.
Gostaria de saber também se tem como abrir um terminal e definir seu PID, pra poder fecha-lo unitariamente...

Grato!


  


2. Re: Executar script em terminal oculto

Paulo
paulo1205

(usa Ubuntu)

Enviado em 29/06/2016 - 12:43h

Para que o seu script abre os terminais? Dependendo da finalidade, pode não ser viável fechá-los.

Você também pode querer aprender a usar o screen.


3. Re: Executar script em terminal oculto

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 29/06/2016 - 13:15h

O PID do terminal em aberto será sempre a variável especial $$ do terminal rodando, mas realmente como o colega acima escreveu não faz sentido (já que não sei o intuito) abrir terminais para executar comandos o arquivo .sh já o faz.






>>> def opposite(word):
... n = len(word) - 1
... while n >= 0:
... print(word[n], end="")
... n -= 1
... print()
...
>>> opposite('socorram me subi no onibus em marrocos')
socorram me subino on ibus em marrocos
>>> õ_Ô




4. Re: Executar script em terminal oculto

Paulo
paulo1205

(usa Ubuntu)

Enviado em 29/06/2016 - 15:09h

ctw6av escreveu:

O PID do terminal em aberto será sempre a variável especial $$ do terminal rodando, mas realmente como o colega acima escreveu não faz sentido (desde que não sei o intuito) abrir terminais para executar comandos o arquivo .sh já o faz.


Falso. “$$” não indica o PID do terminal: essa variável do shell (se é que o processo em questão é um shell) contém o PID do próprio shell. Mesmo que esse shell execute dentro de um terminal, o shell é distinto do terminal que o controla.

Normalmente, um terminal tem um ou mais processos que são por ele controlados, mas não necessariamente um processo que responda pelo funcionamento do terminal em si. Por exemplo: o console em modo texto ou terminais seriais são controlados diretamente pelo kernel, e não possuem PIDs próprios para funcionar(*).

No caso de terminais de rede e emuladores de terminal (incluindo xterm, Gnome-Terminal, Konsole, sshd, telnetd, screen, byobu, splitvt e outros), existe um processo que implementa visualmente (ou ocultamente) o funcionamento do terminal virtual. Esse processo não é parte do grupo de processos controlados pelo terminal. Além disso, mesmo que um processo identifique que está executando num terminal virtual emulado, é relativamente difícil saber o PID do processo que implementa a emulação (isto é: não existe uma chamada direta que funcione em qualquer situação, e as heurísticas para inferir que processo o faz podem variar dependendo do programa e até mesmo ao longo do tempo). Também não existe necessariamente uma correspondência biunívoca entre um terminal virtual e um PID que implemente a interface com o usuário: o mesmo processo pode controlar vários terminais diferentes, e (ao menos teoricamente, embora eu nunca tenha visto na prática e ache que seria uma aventura caótica) vários processos pode deter cópias do descritor que controla o terminal virtual.

--------------
(*) Pode até ser que o kernel tenha threads internas associadas a cada terminal, mas tais threads não são processos controláveis diretamente pelo usuário -- nem mesmo o pelo root.


5. Re: Executar script em terminal oculto [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 29/06/2016 - 15:19h

Danleonhart escreveu:


velho .. olha só ... a galera já disse q talvez não seja funcional deixar os terminais ocultos ... era uma de vc explicar o pq q vc quer fazer isso, aí a galera pode ter idéia certinha do q realmente vc precisa e talvez agregar idéias à sua !!!




6. Re: Executar script em terminal oculto [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 29/06/2016 - 15:58h

Muito obrigado pela correção @paulo1205 errei na parte de responder por impulso sem fazer uma pesquisa antes. = /






>>> def opposite(word):
... n = len(word) - 1
... while n >= 0:
... print(word[n], end="")
... n -= 1
... print()
...
>>> opposite('socorram me subi no onibus em marrocos')
socorram me subino on ibus em marrocos
>>> õ_Ô




7. Re: Executar script em terminal oculto [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 29/06/2016 - 16:23h

Tente o seguinte, se só for abrir os terminais e pronto mate todos com o killall ou kill -9 $(pidof gnome-terminal) se for o gnome e é claro outros emuladores também.







>>> def opposite(word):
... n = len(word) - 1
... while n >= 0:
... print(word[n], end="")
... n -= 1
... print()
...
>>> opposite('socorram me subi no onibus em marrocos')
socorram me subino on ibus em marrocos
>>> õ_Ô








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts