views:

174

answers:

2

Hello. Was wondering how I can start up a command such as:

while :; do ./myCommand; done;

But instead of doing the usual

screen -S nameOfMyScreen

Then the command

while :; do ./myCommand; done;

Then detach the screen

^a ^d (Control "a" the control "d"

I would like it to start and detach. Thanks!

+2  A: 
MikeSep
+1. A combination of these will do your job. Since your *command* is a script, you might have to either put it in a file and pass that or use `bash -c` or something similar.
Noufal Ibrahim
+1  A: 
screen -d -m sh -c "while :; do ./myCommand; done;"

Explanation:

  • -d -m starts screen in detached mode (create session but don't attach to it)
  • sh -c commandline starts a shell which executes the given command line (necessary, since you are using the while builtin).
Heinzi
The version of screen on my system says that the -c option is to read an alternate config file instead of .screenrc.
MikeSep
The `-c` is not passed to screen but rather to `sh`. After the screen command line parser reads `sh` (i.e. something without a dash), it know that no more options follow and that everything else is a command that should be executed.
Heinzi
Ahh, I stand corrected. :)
MikeSep