我有如下的 shell 脚本
#!/bin/sh
screen -d -m -S script1 /usr/bin/ruby script1.rb; true
screen -d -m -S script2 /usr/bin/ruby script2.rb; true
screen -d -m -S script3 /usr/bin/ruby script3.rb; true
screen -d -m -S script4 /usr/bin/ruby script4.rb; true
screen -d -m -S script5 /usr/bin/ruby script5.rb; true
screen -d -m -S script6 /usr/bin/ruby script6.rb; true
screen -d -m -S script7 /usr/bin/ruby script7.rb; true
screen -d -m -S script8 /usr/bin/ruby script8.rb; true
screen -d -m -S script9 /usr/bin/ruby script9.rb; true
无论先运行哪个脚本,都只有前八个脚本会运行。我该如何解决这个问题?
答案1
您可能用完了伪终端。如果您运行前 8 个脚本,然后只输入“screen”(以便您可以看到任何错误),它会说什么?
这是什么操作系统?每个操作系统的伪 tty 分配都有些不同,但是如果您在 Google 中搜索“linux(无论什么)伪 tty 分配”,它可能会出现。
答案2
也许在 .screenrc 中使用类似以下模板会更容易
# define a bigger scrollback, default is 100 lines
defscrollback 10240
nethack on
startup_message off
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "
altscreen on
screen bash
title "receiver"
screen bash
title "serv1"
screen bash
title "serv2 "
您可以将这个 screenrc 模板保存在某处并运行它screen -c your_path