A interatividade de um processo pode ser determinada programaticamente?

1

É possível determinar se um determinado processo em execução é interativo ou meramente daemon (ou seja, um daemon real, ou um tail -f ou similar) usando scripts ou qualquer outra linguagem?

Se sim, como?

É possível em mais de uma plataforma (eu uso o bash com mais frequência, mas as soluções em outros shells - mesmo o PowerShell - também seriam apreciadas)?

    
por warren 17.08.2011 / 21:43

2 respostas

2

com base no seu comentário para a outra resposta, o que você está pedindo é muito difícil.

Você pode verificar as bibliotecas às quais o aplicativo se conecta e, se elas forem controle de tela (por exemplo, ncurses), provavelmente é interativo. Embora estes possam correr 'não interativos (por sua definição)' com certas situações de execução.

Acho que o melhor que você pode fazer é usar o strace, que mostra os syscalls que o aplicativo usa. Se está lendo de um fd que está ligado a um tty, então é interativo.

    
por 18.08.2011 / 00:29
0

Se eu entendi sua pergunta corretamente, um processo interativo deve ter um tty associado a ela.

O seguinte em um sistema Linux deve fornecer todos os processos interativos:

ps -e | grep pts
    
por 17.08.2011 / 22:49