将进程从终端分离出来有很多好处.但同样的事情也可以通过cron-job实现.[如果没有,请纠正我]

在使用cronjob或daemon进程时,我能够区分不同场景的最佳需求是什么?

推荐答案

一般来说,如果您的任务需要每小时运行几次以上(可能<;10分钟),您可能需要运行守护程序.

始终运行的守护进程具有以下好处:

  • 它可以以每分钟1次以上的频率运行
  • 它可以更容易地记住上一次运行时的状态,这使得编程更简单(如果需要记住状态的话),并且在某些情况下可以提高效率
  • 在有许多主机的基础设施上,它不会造成"踩踏群"效应
  • 可以更容易地避免多次调用(也许?)

但是

  • 如果退出(例如,在出现错误后),它将不会自动重新启动,除非您实现了该功能
  • 即使不做任何有用的事情,它也会使用内存
  • 内存泄漏更是一个问题.

一般来说,健壮性支持"cron",而性能支持守护进程.但有很多重叠(其中任何一个都可以)和反例.这取决于你的具体情况.

Linux相关问答推荐

AddressSaniizer随机抛出没有任何解释的SIGSEGV

如何检测文件系统是否支持权限?

UTF-8输入和使用XGetICValues

变量在vim中打印良好,但在bashshell中打印不好,这怎么可能发生?

cu可以从串口读取,但我自己的C程序不能

jinja2.exceptions.TemplateSyntaxError:预期标记,,得到整数(支持十六进制,八进制和二进制整数文字)

如何在 gcc 搜索路径上防止多个版本的 Boost?

使用 awk 将多行文本转换为 CSV

如何为命令的所有选项启用无密码 sudo?

我有 ext2 格式的文件系统图像.我喜欢在终端中读取 Linux 特别是 Ubuntu 中的所有文件系统 struct 数据.有没有工具>

如何在 linux 上为 JNI 应用程序编译动态库?

如何将整个文件夹从 Amazon EC2 Linux 实例复制到本地 Linux 机器?

更改核心转储的位置

size_t 和 off_t 的用法有什么区别?

我想为 Linux 内核做贡献

qstat 和长作业(job)名称

如何从目录复制内容而不是符号链接?

如何在 linux 中使用 CMake 和 Kdevelop 编译 GLUT + OpenGL 项目?

如何在 UNIX 中将字符串转换为整数

linux脚本杀死java进程