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