2013/2/12 Philipp Haselwarter <phil...@haselwarter.org>: > Here's a little script that does what you want. > > There are two issues with "screen -d -m ": > - it double-forks, so the created session's pid can't be > captured > - it might exit before the new session is ready > > Therefore I had to resort to forking with -D and polling. > > > --8<---------------cut here---------------start------------->8--- > #!/bin/sh > # args: $1 : session-name, $2 : shell command to run > session=$1 > screen -c /dev/null -S $session -D -m & > session="${!}".$session > until screen -c /dev/null -S $session -X echo ''; do sleep 0.1; done > screen -c /dev/null -S $session -X stuff "$2\015" > --8<---------------cut here---------------end--------------->8---
Thanks for reply, your post is very interesting. But proposed code does not work correctly for me: i try this in shell: screen -c /dev/null -S test -D -m bash -i & until screen -c /dev/null -S test -X echo '' &>/dev/null; do echo .; sleep 0.1; done; screen -c /dev/null -S test -X stuff 'sleep 10\015' 'sleep 10' command seems to be not executed (not seen in ps axf) doing further 'screen -r test' gives me unusable shell. -- Andrey Utkin _______________________________________________ screen-users mailing list screen-users@gnu.org https://lists.gnu.org/mailman/listinfo/screen-users