Skip to content
This repository has been archived by the owner on Feb 7, 2023. It is now read-only.

How to send 'Ctrl-C' to the interactive shell spawned by SpawnWithArgs #63

Open
fangxlmr opened this issue Mar 24, 2021 · 2 comments
Open

Comments

@fangxlmr
Copy link

Say, I run cat /proc/kmsg as a root user on the interfactive SSH shell spawned by SpawnWithArgs, but it will hangs for ever (since you wouldn't cat anything from the magic file /proc/kmsg even as root), so no following commands sent to this SSH shell will not be executed by the SSH shell since it is haning on. I'd like invoke Ctrl-C in this SSH shell spawned by goexpect to stop cat progress clearing the shell, just like what we will do in an actual one.

I've tried

  1. sending ASCII code \003 (by calling exp.Write()) wouldn't work.
  2. SendSignal batcher seems send signals to the SSH progress itself, not she SHELL inside the SSH session.

Are there any ways to do this? What did I miss here?

@fangxlmr
Copy link
Author

CC @skalle

@fangxlmr
Copy link
Author

As posted here, I don't think it's possible and portable to send a 'Ctrl-C' signal to remote SHELL in SSH session.

Sending a simple '\x03' surely wouldn't work since most of SSH server/client doesn't support signal messages. I'm not sure how expect is implemented, but it should behavior the same way. However, some posts also said sending \x03 works fine in expect scripts, so I'm a bit confused. :-

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant