如何确保程序始终运行但没有 root 访问权限?

如何确保程序始终运行但没有 root 访问权限?

目前我需要有一个程序一直运行,但是当服务器重新启动时我需要手动运行该程序。有时我没空。

当服务器启动时,我无法使用正常配置重新启动我的程序,因为我没有 root 访问权限,并且管理员不想安装它。

答案1

我把这个发布在类似的问题


如果您有cron守护进程,则预定义的 cron 时间挂钩之一是@reboot,它会在系统启动时自然运行。运行crontab -e编辑您的crontab文件,并添加一行:

@reboot /your/command/here

我听说这并不是为所有 cron 守护进程定义的,所以你必须检查它是否适用于你的特定守护进程

答案2

更通用的解决方案是设置一个 cronjob 来检查您的程序是否每隔几分钟运行一次。我以普通用户身份运行 dircproxy,并且 crontab 条目如下所示:

*/10 * * * * /path/to/dircproxy_cron.sh

答案3

这不是一般问题的答案,但可能应该提及。

Unix 和类 Unix 系统通常用于多用户环境,因为它们是多用户操作系统。因此,此类系统的管理员通常不愿意安装未知的服务或软件,因为这可能会导致系统的所有用户不稳定或不安全。因此,我认为第一步是

  1. 确定管理员不想安装该服务的原因。
  2. 考虑一下您是否可以通过某种方式完成任务,从而解决管理员的担忧。
  3. 如果不是,请确定管理员的担忧是否有效。即,问问自己,“这是否会导致其他用户不稳定?”、“这是否会影响其他用户的性能?”以及“这是否会让其他用户面临安全漏洞?”
  4. 如果所有这些问题的答案都是“否”,请问问自己,在没有管理员许可的情况下执行此操作是否会给您带来麻烦。
  5. 如果不行或者您愿意接受风险,请尝试上述方法之一。

答案4

我会推荐http://supervisord.org/它将监督您的进程,为您重新启动它,并且有很多配置,应该以普通用户身份运行。

相关内容