【发布时间】:2019-05-17 17:37:23
【问题描述】:
就像c中函数的静态变量提供的功能一样。 在 bash 脚本中多次调用程序时,必须将上一次调用的数据保留到下一次调用。 通常,当我们在 bash 中运行程序时,它会在完成后终止。
我想要的是当程序运行时,它不能自行终止并继续运行,直到调用 kill 命令显式终止。 这样我们就可以同时调用要使用的程序。
【问题讨论】:
-
如果你不想让程序终止,那么就不要让它结束。例如,调用一个将无限期阻塞的函数,或者至少直到某个适当的稍后时间。有很多可能性,但如果使用得当,
sigsuspend()是一个相当不错的选择。这甚至适用于您使用kill来阻止它的特定选择。 -
还有用于程序和脚本的静态变量:它们被称为“文件”。
-
完全不清楚你的意思。也许您想实现一个可以长时间运行的守护程序,您可以多次查询。或者您可能想使用 sqlite 数据库。或者,也许您只是想生成一些数据并将其写入文件系统。除非您的意思是“实例化进程的新实例”,否则“继续调用程序”是什么意思?也许您的意思是“继续查询守护进程”、“继续读取文件”或“查询数据库”。
-
@WilliamPursell 所说的。 “同时继续调用要使用的程序”是什么意思?因为从 shell 调用程序会产生一个新进程。可能您想投入精力制作更智能的程序而不是 shell 技巧。
标签: linux bash memory-management process