Running mosh on OS X installed with brew install mosh
mosh server_alias screen - works
mosh server_alias 'screen -dR session_name' - [mosh is exiting.]
mosh server_alias and screen -dR session_name' - works
any hint's how to debug that?
Mosh follows the convention of using -- as a separator to end parsing of options.
Try this: mosh server_alias -- screen -dR session_name
Ok, probably I brough wrong example I have a
mosh server_alias -- 'tmux a -t pairing || tmux new -s pairing'
it works when session is established and first command pick up session,
but when I'm expecitng to get non zero exit code and try the second command it extitng.
with ssh i run that as ssh server_alias -t 'tmux a -t pairing || tmux new -s pairing'
ssh's command-line parsing is buggy and we chose not to emulate it. The arguments to mosh are exactly the same as a normal shell. If you run 'tmux a -t pairing || tmux new -s pairing' at the shell, you'll get "command not found," and the same happens with mosh. (Run mosh with --no-init to see the error message.) But you can run this to do what you're trying to do:
mosh server_alias -- sh -c 'tmux a -t pairing || tmux new -s pairing'
To elaborate a bit on how mosh works the same as sh (and unlike ssh):
$ echo "Hell's kitchen"
Hell's kitchen
$ mosh --no-init localhost -- echo "Hell's kitchen"
Hell's kitchen
[mosh is exiting.]
$ ssh localhost -- echo "Hell's kitchen"
bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file
Awesome! Thanks for detailed explanation.
Created https://github.com/mobile-shell/mosh/wiki/Usage where we can move this beautiful example.
Most helpful comment
ssh's command-line parsing is buggy and we chose not to emulate it. The arguments to mosh are exactly the same as a normal shell. If you run
'tmux a -t pairing || tmux new -s pairing'at the shell, you'll get "command not found," and the same happens with mosh. (Run mosh with--no-initto see the error message.) But you can run this to do what you're trying to do:mosh server_alias -- sh -c 'tmux a -t pairing || tmux new -s pairing'