Yos*_*tal 2 bash terminal sh osx-lion
简单的问题:有没有办法在后台运行脚本而不运行终端?
更多细节和背景:我有一个应用程序,它读取应用程序.log文件和来自它的信息,然后从日志中的信息提供信息和统计信息.对应用程序的更新改变了.log文件的编写方式,并以我无法预测的方式删除信息并复制日志.
设计用于与日志交互的应用程序未编码以检查此类更改.因此,当它在日志更改后尝试收集信息时,它会停止工作.
已经设计了一个"hack"来运行tail -f,然后将应用程序篡改为指向新文件.("hack"有效)我想在后台运行尾部,这样用户就不会打断它......打破它......
- (可能)比所需描述更长的时间.我认为更详细的问题会得到一个确切的答案.
提前致谢!
〜¥oseph
答案取决于您是否需要在退出shell后重新连接到该进程.如果这个过程是非交互式的,并且可以简单地单独使用,那么"nohup program&"应该可以解决问题.但是,在关闭shell之后,这不会让您继续与程序进行交互.
如果它是一个交互式程序,那么最好的办法是使用屏幕或其他终端多路复用器.你开始"屏幕",它给你一个新的shell,在这你开始你想要的任何程序,通常的方式,说"nano myfile.txt".
如果要关闭shell,但让程序保持运行,请按Ca d('Detach')从屏幕上分离.它一直在运行,但在后台,即使你退出也会继续运行.
当您稍后想要重新连接到屏幕时,您打开一个新的shell并键入"screen -r"(重新连接),这将使您离开您所在的位置.
屏幕还允许您在单个终端窗口中运行多个不同的shell,并且整体上是一个整洁的工具.看看这个.