linux – 用于UNIX世界的屏幕/ tmux的Perl替代方案?

当需要类似屏幕/ tmux的解决方案时会发生什么(让流程长时间运行,但是因为可能需要交互而没有nohup) – 但是在给定的机器上没有screen / tmux,并且安装了屏幕/编译它不是一个解决方案?

问:是否有任何“短”perl脚本通常(或通常不会)用于实现此目标(在Linux / AIX /等上)?

只需要这个:

>启动perl脚本
>开始需要很长时间的特定事情
>从终端卸下,例如:因为工作笔记本需要关闭

>重新连接到控制台以查看/控制已启动的长时间运行
过程,就像屏幕一样

有人有像这样的perl脚本吗?

解决方法:

除非安装了IO :: Pty模块,否则perl可能不是最合适的.

首先,如果给定的东西需要很长时间(gtttlt)可以正常使用管道,也许你不需要任何复杂的东西.

mkfifo input
nohup gtttlt <> input > output 2>&1 &

启动gtttlt(从命名管道输入,输出到常规文件).然后你附上:

tail -f output & cat > input

如果管道不能做,你需要一个终端,那么你会想要使用一些可以启动伪终端的东西,比如expect,zsh的zpty,perl的IO :: Pty或sshd:

mkfifo input
nohup ssh -tt localhost gtttlt <> input > output 2>&1

并附上:

stty raw -echo; tail -f output & cat > input

请注意,它与实现screen或tmux不同. screen和tmux实现终端仿真器.重新连接时,您会看到该终端仿真器的屏幕内容.在重新连接时,您只能看到最后10行输出(尽管您可以通过将-n 123选项传递给tail来进行调整).我们只是将所有数据传递到主机终端或从主机终端传递数据.

上一篇:android高级开发面试!GitHub标星9K的Google官方MVP+Rxjava项目详解,经典好文


下一篇:使用`nohup`在Debian服务器上导入MySQL转储