Назад | Перейти на главную страницу

Почему мой .screenrc вызывает открытие только двух экранов?

В моем файле .screenrc есть следующее:

# Don't display the copyright page
startup_message off

# keep scrollback n line
defscrollback 5000

# setup some screens
screen -t top 0 top -o cpu -s 5
screen -t mysql 1 mysql -u root -p
screen -t shell_screen 2 cd ~/webroot
screen -t report_gen 3 tail -f ~/webroot/path/report_gen_log.txt

shelltitle "$ |bash"

#change the hardstatus settings to give an window list at the bottom of the
##screen, with the time and date and with the current window highlighted
hardstatus             alwayslastline
#hardstatus string '%{= mK}%-Lw%{= KW}%50>%n%f* %t%{= mK}%+Lw%< %{= kG}%-=%D %d %M %Y %c:%s%{-}'
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'

Когда я запускаю screen, создаются только первые 2 экрана.

Что может быть не так?

Я использую OSX, но не думаю, что это важно.

Кайл прав - это экранное окно 2 выйдет из строя, потому что cd - встроенная оболочка. Даже если это была команда, она немедленно завершилась бы, и screen закроет это окно.

Вы можете сделать что-то вроде этого, чтобы это работало:

screen -t shell_screen 2 bash -c "cd ~/webroot && bash"

Команда tail (окно 3) не выполняется из-за символа "~". Screen не выполняет расширение в стиле оболочки, поэтому tail сразу же дает сбой (не может открыть файл) и завершает работу, а окна экрана закрываются. Вручную расширьте этот ~ до полного пути к вашему домашнему каталогу, и этот экран должен работать.

Не уверен, почему хвост не работает, но cd - это встроенная оболочка, а не команда, поэтому вы должны получить такую ​​команду в окне 2.