当前位置:  开发笔记 > 编程语言 > 正文

如何使用命令启动Unix屏幕命令?

如何解决《如何使用命令启动Unix屏幕命令?》经验,为你挑选了4个好方法。

根据Unix"screen"命令的文档,您可以在.screenrc中配置它以从一堆默认屏幕开始,每个屏幕都运行您指定的命令.

这是我的cofig:

# Default screens
screen -t "shell_0"  1
screen -t "autotest" 2 cd ~/project/contactdb ; autotest

它不会运行autotest命令.autotest当我开始时,我试图运行的那个窗口立即关闭screen.

我也尝试过......

screen -t "autotest" 2 cd ~/project/contactdb

结果相同.

我也试过......

screen -t "autotest" 2 ls

同样的结果也是如此.

在启动时让它在给定屏幕上运行命令的秘诀是什么?



1> chaos..:

你的程序正在运行(好吧,除了cd),它只是在没有父shell的情况下运行,所以一旦它完成,它就会退出并且你已经完成了.

你可以这样做:

screen -t "autotest" 2 bash -c 'cd ~/project/contactdb ; autotest'

产生两个炮弹,但生命可能还会继续.



2> 小智..:

试试这个:

$ screen -S 'tailf messages' -d -m tailf /var/log/messages

然后你可以做:

$ screen -ls
1234.tailf messages

其次是:

$screen -r 1234



3> Otis..:

这可能会有所帮助,但可能并不完全是您想要的.

将"zombie az"或"defzombie az"作为.screenrc的第一行."az"可以是你想要的任何2个键.现在,当一个屏幕应该关闭(例如命令完成执行)时,它实际上不会关闭; 点击'a'将关闭它,点击'z'将重新执行附加到该屏幕的命令.

我在屏幕用户手册中找到了.



4> Jamie Flourn..:

您也可以将字符"填充"到屏幕中,就像您输入了它们一样.

以下是您使用示例执行此操作的方法:

screen -t "shell_0"  1

# create the following screen in the desired dir, instead of cd-ing afterwards :)
chdir ~/project/contactdb
screen -t "autotest" 2

# (without this sometimes screens fail to start correctly for me)
sleep 5

# paste some text into screen number 2:
select 2
stuff "autotest\012"

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有