Com vincular um pseudo terminal (pts) com um processo?

1. Com vincular um pseudo terminal (pts) com um processo?

ricardo
rccferrari

(usa Outra)

Enviado em 30/03/2015 - 16:52h

Estou com um grande problema e não encontrei nada até agora na internet que resolva meu problema, vocês poderiam me ajudar?
Tenho um script que executa uma aplicação em Python que funciona perfeitamente, mas quando faço isso usando o PHP o pts fica com um ? e a aplicação não funciona, pensei que se tiver como mudar o pts com shell script talvez poderia resolver o problema.
Obrigado desde já!


  


2. Re: Com vincular um pseudo terminal (pts) com um processo?

Paulo
paulo1205

(usa Ubuntu)

Enviado em 31/03/2015 - 01:34h

Como você sabe que é por falta de terminal?

Se a execução vem de um PHP, seria certo supor que você está tentando executar o programa a partir da web? Qual a finalidade do programa em Python? Você não tem como executar função semelhante sem precisar de terminal?

Eu não conheço PHP. Em C, existem as funções openpty() e forkpty(), que podem ser do seu interesse.


3. Re: Com vincular um pseudo terminal (pts) com um processo?

ricardo
rccferrari

(usa Outra)

Enviado em 31/03/2015 - 10:30h

Paulo, obrigado pela ajuda!
Meu sistema é o seguinte, eu preciso executar um script Python através da web para que o sistema seja iniciado/parado/alterado remotamente, problema é que quando faço isso o processo é executado sem um pts vinculado, assim fica o processo criado no sistema, visto através do "ps -aux", porém o sistema não responde outras máquinas na rede e provavelmente o não funcionamento é prejudicado por isso!
Será que se eu usar um programa C para criar a execução do sistema Python e iniciar o programa C com o PHP da certo? Vou tentar e se funcionar posto a solução.
Alguém tem mais alguma ideia?
Obrigado!



4. Re: Com vincular um pseudo terminal (pts) com um processo?

Paulo
paulo1205

(usa Ubuntu)

Enviado em 31/03/2015 - 10:45h

Um jeito de iniciar o processo com um tty é chamar algo como

screen -dm -- comando [argumentos ...] 


Mas eu diria que isso é um pouco de bacalhoada. Se você tem um daemon, ele não deveria depender de terminal.

Uma exceção que me vem à mente é se o seu serviço depender, por exemplo, da digitação de uma senha de chave de criptografia, quando então um terminal seria necessário na inicialização, ainda que ele "demonize" logo em seguida. Num caso assim, a solução de contorno que eu indiquei acima não resolveria, pois você ainda teria de digitar a senha. Você até poderia criar um pty dentro do seu programa PHP, e passar a senha através da ponta master do pty (o programa destino executa na ponta slave), mas para isso você teria de embutir a senha em algum lugar do seu código, o que efetivamente anularia a segurança inicial de ter uma senha protegendo a chave.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts