Afficher le script sur SSH?

Un ami, en utilisant une machine distante, SSHed sur ma machine et a couru le script python suivant:


tandis que (1):

…. copy "Bonjour tout le monde"


(ce script imprime simplement "Bonjour tout le monde" en continu).

Je suis maintenant connecté à ma machine. Comment puis-je voir la sortie du script que mon ami courait?


si ça aide, je peux "repérer" le script que mon ami utilise:

moi @ home: ~ $ ps aux | grep justprint.py

ami 7494 12,8 0,3 7260 3300? Ss 17:24 0:06 python TEST_AREA / justprint.py

ami 7640 0.0 0.0 3320 800 pts / 3 S + 17:25 0:00 grep –color = auto juste


quelles mesures devrais-je prendre pour voir les messages "Bonjour tout le monde" sur mon écran?

Vous ne pouvez généralement pas voir le résultat du programme d'une autre personne. Voir plus dans cette colonne où votre command grep est en cours d'exécution sur tty pts/3 , et celle de votre ami ? , ce qui signifie qu'il est détaché du terminal.

Vous pouvez voir où la sortie est exécutée avec ls -l /proc/7494/fd/ (où 7494 est l'ID de process du process de votre ami) – bien que si vous ne courez pas en tant que root, pour des raisons de security. (Essayez donc sudo ls -l /proc/7494/fd/ .)

Il y a des choses horribles, horribles, kludgy, que vous pourriez être en mesure de faire pour changer l'endroit où la sortie du programme va. Mais en général, vous ne pouvez pas et ne devriez pas.

Si votre ami souhaite partager la sortie avec vous et que l'approche consiste à redirect la sortie du programme vers un file, puis rendre ce file lisible par vous:

 $ python -u TEST_AREA/justprint.py > /tmp/justprint.out & $ chmod a+r /tmp/justprint.out 

(Dans ce cas, «lisible par vous» est «lisible par tout le monde», avec un peu plus de travail, vous pouvez configurer un groupe partagé pour que vous puissiez tous les deux échanger des données).

(Et sachez que les tampons python sont générés par défaut – l'éteindre est ce à quoi sert le -u .)

Si vous avez un access root sur la machine et que votre ami est prêt à exécuter certaines commands, il est possible:

  1. L' screen [Racine] doit être root : chmod u+s /usr/bin/screen
  2. [Ami] lance l' screen , il peut donner un nom à la session, cela facilite la tâche: screen -S "shared_session"
  3. [Ami] active le mode multi-user: Ctrl-a :multiuser on user activé
  4. [Ami] vous permet d'accéder à sa session d'écran: Ctrl-a :acladd you
  5. [Friend] (Facultatif) restreint votre access à la lecture seule: Ctrl-a :aclchg you -w "#"
  6. [Vous] joindre à l'écran des amis: screen -x friend/shared_session

La racine setuid est peut-être un peu dangereuse …