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---


-- 
Philipp Haselwarter


_______________________________________________
screen-users mailing list
screen-users@gnu.org
https://lists.gnu.org/mailman/listinfo/screen-users

Reply via email to