Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在后台运行脚本?_Bash_Terminal_Osx Lion_Sh - Fatal编程技术网

Bash 在后台运行脚本?

Bash 在后台运行脚本?,bash,terminal,osx-lion,sh,Bash,Terminal,Osx Lion,Sh,简单的问题:有没有一种在后台运行脚本而不运行终端的方法 更多细节和背景:我有一个应用程序,它读取apps.log文件并从中提取信息,然后根据日志中的信息提供信息和统计数据。 应用程序的更新改变了.log文件的写入方式,删除了信息,并以我无法预测的方式复制了日志 设计用于与日志交互的应用程序未编码以检查此类更改。因此,当它试图在日志更改后收集信息时,它会停止工作 设计了一个“黑客”来运行tail-f,然后对应用程序进行HEX操作,以指向新文件。 (黑客的作品) 我想在后台运行尾部,这样用户就不会中

简单的问题:有没有一种在后台运行脚本而不运行终端的方法

更多细节和背景:我有一个应用程序,它读取apps.log文件并从中提取信息,然后根据日志中的信息提供信息和统计数据。 应用程序的更新改变了.log文件的写入方式,删除了信息,并以我无法预测的方式复制了日志

设计用于与日志交互的应用程序未编码以检查此类更改。因此,当它试图在日志更改后收集信息时,它会停止工作

设计了一个“黑客”来运行tail-f,然后对应用程序进行HEX操作,以指向新文件。 (黑客的作品) 我想在后台运行尾部,这样用户就不会中断它。。。打破它

-抱歉,描述(可能)比需要的描述长。但我想一个更详细的问题会给我一个准确的答案

提前谢谢


~oseph

答案取决于退出shell后是否需要重新连接到进程。如果该过程是非交互式的,并且可以简单地单独处理,那么“nohup program&”应该可以做到这一点。但这不会让你在关闭shell后继续与程序交互

如果它是一个交互式程序,那么您最好使用屏幕或其他终端多路复用器。你启动“screen”,它会给你一个新的shell,在这里你可以启动任何你想要的程序,通常的方式是“nanomyfile.txt”

当您想关闭shell,但让程序运行时,按C-AD(“分离”)从屏幕上分离。它会继续运行,但会在后台运行,即使您注销,它也会继续运行

当您稍后想要重新连接到screen时,打开一个新的shell并键入“screen-r”(重新连接),这将使您处于正确的位置


Screen还允许您在一个终端窗口中运行多个不同的Shell,总体来说,它是一个整洁的工具。检查一下。

至少乍一看,这听起来像是你在寻找的。试着看看@jerry在手册页上寻找他们,看起来nohup会完全满足我的需要。我在搜索时遇到了&operator,但如果终端被杀死,循环将无法存活。@subbu看起止点看不出它是什么,但是如果终端方法不起作用,将其转换为执事是个好主意。所以,如果诺胡普不是我要找的,我会去计划“B”。同时,我将检查这两个并测试它们。我会用结果更新帖子。谢谢