Экран GNU: опция S не работает при запуске из скрипта bash

#bash #ssh #gnu #gnu-screen

#bash #ssh #gnu #gnu-screen

Вопрос:

Имея такой простой bash-скрипт:

 /bin/bash
screen -dm -S "backup"
wget -O backup-$(date  %Y-%m-%d).txt http://link-to-very-huge-file/
  

Проблема в том, что при screen -dm -S "backup" выполнении появляется новый сеанс экрана. Но он не назван! Когда я (из ssh) делаю screen -ls , это дает мне:

 (10/09/2011 04:35:05 PM)        (Detached)
1969.VNC        (10/09/2011 01:53:45 PM)        (Detached)
910.minecraft   (10/09/2011 12:59:29 PM)        (Detached)
  

Я создал последние два самостоятельно. Но у первого, созданного скриптом bash, нет имени и даже идентификатора!

Когда я делаю screen -dm -S "backup" сам, он работает нормально и выдает мне сеанс именованного экрана:

 3527.backup (10/09/2011 04:44:40 PM)        (Detached)
  

Но почему скрипт работает плохо? Как заставить его работать должным образом?

Ответ №1:

Это странно; это работает для меня.

Можете ли вы скопировать и вставить точное содержимое скрипта bash? В вашем вопросе отсутствует #! в первой строке и есть wget команда в строке, следующей за screen командой. Это заставляет меня подозревать, что проблема в каком-то коде, который вы нам не показали.

Вот что я только что попробовал. (Я добавил, -c /dev/null чтобы избежать загрузки моего довольно сложного .screenrc файла):

 $ screen -ls
There is a screen on:
        2454.pts-1.kvetch       (09/09/2011 11:00:03 AM)        (Detached)
1 Socket in /var/run/screen/S-kst.

$ cat foo.bash
#!/bin/bash

screen -dm -S FROM_BASH -c /dev/null sleep 12345
$ ./foo.bash
$ screen -ls
There are screens on:
        10384.FROM_BASH (10/09/2011 01:22:48 PM)        (Detached)
        2454.pts-1.kvetch       (09/09/2011 11:00:03 AM)        (Detached)
2 Sockets in /var/run/screen/S-kst.

$ 
  

Я использую экран 4.00.03jw4 в Ubuntu 11.04.