【问题标题】:Programmatically setting a process to execute at startup (runlevel 2)?以编程方式设置要在启动时执行的进程(运行级别 2)?
【发布时间】:2012-12-21 04:35:43
【问题描述】:

我想了解如何编写 Python 代码来设置启动时运行的进程,在本例中为二级。

我已经阅读了一些资料,但我不清楚哪种方法在不同系统上最可靠。我原本以为我会用 pythons fileIO 编辑/etc/inittab,但后来我发现我的电脑 inittab 是空的。

我该怎么办?哪种设置启动时启动的方法最可靠?有人有任何代码 sn-ps 吗?

【问题讨论】:

  • 你使用的是什么版本的 Linux?
  • Ubuntu 10.10。我认为空的 inittab 可能是因为盒子是 VPS,因此在 openVZ 中运行。
  • 我没有要测试的 10.10 实例,但我认为这是使用 upstart 来管理启动时启动的内容。您应该能够在 /etc/init.d 中创建一个脚本。看看upstart docs
  • 我希望创建一个适用于所有 linux 版本的脚本。不只是 Ubuntu
  • 我不确定是否会有一种标准的方式来执行启动脚本,但 upstart 似乎是许多最近的 linux 发行版的标准。旧版本的 RedHat 不使用它,但 RHEL 6 有它。因此,如果您走新贵路线,您应该能够获得很多 Linux 发行版。这是一篇关于 python daemons 的更详细的帖子

标签: python linux startup runlevel


【解决方案1】:

我不妨用我的发现来回答我自己的问题。

在 Debian、Ubuntu、CentOS 系统上,有一个名为 /etc/rc.local 的文件。如果您使用 pythons 的 FileIO 来编辑该文件,您可以放置​​一个将在所有多用户启动级别的末尾运行的命令。这个工具仍然存在于使用 upstart 的系统上。

在 BSD 上我不知道。如果您知道如何让某些东西在启动时进行,请发表评论以改进此答案。

Archlinux 和 Fedora 使用 systemd 来启动守护进程 - 请参阅 Arch wiki 页面了解 systemd。基本上,您需要创建一个 systemd 服务并对其进行符号链接。 (感谢埃米尔·伊万诺夫)

【讨论】:

  • Archlinux 和 Fedora 使用 systemd 来启动守护进程 - 请参阅 Arch wiki page for systemd。基本上,您需要创建一个 systemd 服务并对其进行符号链接。
猜你喜欢
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多