Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

My scenario is this:

I have a screen session running in a remote location. Inside this screen is a consoled-based program. When run without screen, this program starts in the terminal and accepts commands on its standard input.

What I want is a way to remotely send a command to screen so that this command is received by the console program. Maybe like this:

My PC -> SSH Send Msg Auto -> Screen Session -> Program (Run command received)

So from a remote PC I can send via SSH commands to the screen which sends them to the program. The program accepts them and executes them.

share|improve this question

1 Answer 1

up vote 8 down vote accepted

If I understand correctly, you want to send input to a program running inside a screen session. You can do this with screen's stuff command. Use screen's -X option to execute a command in a screen session without attaching to it.

screen -S sessionname -p windowname -X stuff 'command1
command2
'

If you want to see the program's output, see the hardcopy, log and logfile commands.

share|improve this answer
    
Already tried the stuff command but it only sends commands that are from screen. You see it accepts only the commands that are screen related, not the program am using related. –  CYREX Jan 1 '11 at 19:54
    
@CYREX: stuff sends characters, exactly as if you had typed them. What exactly did you try, what was the intended effect, and what happened instead? –  Gilles Jan 1 '11 at 19:59
    
I see you have the -p part. I did not have that. Added that part and it is sending the command now but how can i press ENTER for each command? –  CYREX Jan 1 '11 at 20:52
    
Found it. Addint $ before the quotes and having C like escapes in it. Like this -X stuff $'show users\n' –  CYREX Jan 1 '11 at 20:56
    
@CYREX: -p is necessary (or at least a good idea) if there is more than one window. To “press Enter”, just include a newline in the argument (i.e. inside the quotes), as I've done. –  Gilles Jan 1 '11 at 21:00

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.