I am designing a script to launch a process inside a named screen session.
as_user "screen -p 0 -S **$command** -X eval 'stuff \"wine LFS.exe /cfg=**$command**.cfg\"\015'"
So bash myscript.sh start test
will create a screen named test and run the test.cfg
with the software.
Now I want my script to access the specific screen session and do a CTRL+C to stop the running process so i can kill the screen session.
Something like this:
as_user "screen -p 0 -S **$command** **... kill the process with ctrl-c...**"
as_user "screen -p 0 -S **$command** -X eval 'stuff \"exit\"\015'"
ctrl + a , c will create a new "window" in your active screen session. You can switch between multiple windows (as Ansgar indicated) with ctrl + a , n for the next window, and ctrl + a , p for the previous window. ctrl + a , " will give you a list of all your open windows.
Starting Linux Screen Press Space to continue to the next page. Press Space again to open a new screen session. The system drops out to a command line that looks just like a regular terminal window. The manage screen shells, use Screen keystrokes (in most cases, Ctrl + a, followed by another key).
I don't quite understand you but to send ctrl-c
to a window in a screen session:
screen -S session_name -X at window_number stuff $'\003'
# or
screen -S session_name -X -p window_number stuff $'\003'
If you want to send something to all the windows, use #
(needs to be quoted) as the window_number.
UPDATE:
Screen's stuff
command also supports ^X
(or ^x
) to mean CTRL-X
so the following command can also be used to send CTRL-C
.
# Here '^C' is two chars, '^' and 'C'
screen -S session_name -X at window_number stuff '^C'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With