В моем файле .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.