在后台运行根任务/程序的正确方法

在后台运行根任务/程序的正确方法

我正在编写一个需要以 root 身份在后台运行的程序。

(对于任何用户)

为此,我使用了该/etc/rc.local文件。这似乎有效。

我遇到的问题是,当普通用户尝试关闭计算机时,由于 root 帐户有一个活动的“任务”,因此普通用户会被要求输入 root 密码。

这让我猜测我可能以错误的方式这样做。有更好的方法吗?我想过一些可能有效的修复,但我真的很想知道如何正确地做到这一点!

答案1

不,这不取决于它。如果您从 rc.local 调用一个简单的任务,则不应出现此行为。

如果您想在后台以 root 身份运行任务:这就是所谓的守护进程。还有更多方法可以做到这一点,最有可能的是 3 种:

  1. 如果恶魔定期做某事,你可以将其发展为定时任务脚本。虽然不是很有效,但很清楚。
  2. 您也可以为此创建一个服务,这意味着:1.您必须在 中开发其启动/停止脚本/etc/inittab,2.您必须使用 systemd 配置该服务(这可能是您的主系统服务启动程序/重新启动程序守护程序) 。如果您在这里遇到问题,欢迎您提出下一个问题。
  3. 最强大的解决方案是通过结合前两个解决方案来实现的。尽管它也结合了后备方案。您实现一个系统服务,将其作为系统服务运行,并开发一个测试脚本,该脚本仅测试它是否正常工作。如果没有,则终止并重新启动。

关于您的实际问题:不,几乎肯定会提示用户不是因为简单的运行守护进程。它必须在您设置中的其他位置。在正常的系统上,大约有数百个进程,并且实际上总是有一些任务无法完全停止(或者因为某些问题,或者因为不需要,或者因为不可能)。它不会导致系统出现问题,只会使重新启动速度更快。如果您详细说明一下您使用哪个发行版,您在后台运行什么等等,这对我们有很大帮助。

相关内容