Below is the function I use as part of a generalized wrapper around ssh and tmux that does this. The $new_window_command variable is set via an option to the script (which is named "work") that contains this function. For example, work -N "vim ~/docs/snippet" ToDo Will attach to an existing session named ToDo. If one doesn't exist it will create a new session and run the command specified by the -N option. function attach_session { local session="$1" local rows cols # Try to get the size of the tmux virtual terminal so we can resize # the local window to match. fields='#{session_height} #{session_width}' cmd="tmux list-windows -t '$session' -F '$fields'" ssh -x -t -p $port $host "$cmd" 2> /dev/null | read rows cols if [[ $rows == [0-9]## ]] ; then rows=$((rows + 1)) # to account for the tmux status line size $rows $cols cmd="exec tmux attach-session -t \"$session\"" else cmd="exec tmux new-session -s \"$session\"" if [[ $new_window_cmd != '' ]] ; then p1="tmux send-keys -t \"$session\" \"$new_window_cmd\"" p2="tmux send-keys -t \"$session\" C-m" cmd="(sleep 2; $p1; $p2) &; $cmd" fi fi ssh -x -t -p $port $host "exec /bin/zsh -l -c '$cmd'" } On Thu, Feb 6, 2014 at 4:31 PM, Kurtis Rader wrote: > It's pretty easy with tmux (via "tmux send-keys") but you need to consider > unwanted side-effects if the session isn't at a shell prompt awaiting > input. What happens if, say, a command like vim is the foreground task when > you try to execute that command? You're just asking for trouble trying to > do it that way. The only time I use that capability is when I know I'm > establishing a new session and want to do some custom initialization (e.g., > cd'ing to a particular directory and launching my editor). > > > On Thu, Feb 6, 2014 at 10:27 AM, Thorsten Kampe > wrote: > >> Hi, >> >> tough question: can I automatically execute a command on reattaching >> a detached byobu (screen or tmux) session? >> >> Every time I login, /etc/motd is displayed. Since I hardly ever log >> out and in, I'd like to have the same functionality when reattaching >> to my detached session. This could be a simple cat /etc/motd kind of >> "autostart". >> >> Thorsten >> >> > > > -- > Kurtis Rader > Caretaker of the exceptional canines Junior and Hank > -- Kurtis Rader Caretaker of the exceptional canines Junior and Hank