Você quer que pareça que user2 digitou o comando?
No caso de screen
, você pode usar
screen -S user2/sessionname -p windowname -X stuff "~user1/somescript.sh
"
Isto irá digitar o texto ~user1/somescript.sh
(referindo-se a um arquivo no diretório pessoal do usuário1) para uma janela específica da sessão de tela especificada e enviar um caractere de nova linha.
(Sim, o segundo "
deve estar em uma nova linha, caso contrário você enviaria o texto e teria que pressionar voltar na sessão de tela. Como alternativa, use $'stuff blah\n'
)
Para fazer isso, você precisará ter acesso de gravação a user2/sessionname
; leia a página de manual da tela para descrição de multiuser
e acladd
.
No caso genérico "executar coisas em outro tty", você pode usar writevt /dev/pts/X sometext
; a ferramenta writevt
faz parte do pacote console-tools . Se sua distro usar kbd , obtenha writevt.c
. Isso é específico para o Linux.
Ou você quer que o user2 veja a saída ?
./somescript.sh >& /dev/pts/X
onde /dev/pts/X
é o dispositivo tty que pertence à tela do usuário2.
Você precisará de acesso de gravação; isso pode ser dado pelo user2 com chmod / setfacl, ou você pode usar sudo
.
( >& file
é equivalente a > file 2>&1
, que redireciona stdout e stderr para o arquivo fornecido.)