0

我每次都在创建一个进程,但是在“kill -9 -1”之后,我丢失了我创建的进程。我知道为什么我每次都丢失它。但是无论如何,我可以让我的程序自动运行,每次我打开我的电脑?

谢谢,,

4

4 回答 4

1

大多数发行版仍然支持SysV Init Scripts

最简单的方法是从一个简单的 init 脚本中获取/etc/init.d/并更改它以满足您的需要:

sudo cp /etc/init.d/foo /etc/init.d/my_foo
sudo gedit /etc/init.d/my_foo

然后,您需要启用它:

sudo /sbin/chkconfig my_foo on

如果chkconfig不可用,您可能需要安装它。此外,还有insserv可能可用的 LSB 别名。

于 2013-02-23T14:34:59.697 回答
1

Ubuntu 系统现在带有Upstart,其配置文件可能比 System Vinit脚本更简洁。Upstart 的简单作业配置如下所示,然后进入,例如/etc/init/example.conf

# this is a comment
start on startup
stop on shutdown
exec /path/to/program --some-args maybe-another-arg

然后它将分别在启动和关闭时启动和停止。要手动启动和停止它,请使用startandstop命令root

$ sudo start example
$ sudo stop example

您可以在其 Cookbook中找到有关 Upstart 配置的更多信息。init有关安装了 Upstart 的系统的第 5 节的手册页中也提供了信息。( man 5 init)

于 2013-02-24T00:17:32.677 回答
0

Fedora 带有systemd,许多其他 Linux 发行版都在采用它(Ubuntu 和现在的 Debian 除外)。该软件包包括您可能想要查看的几个帮助程序。

于 2013-02-24T03:54:07.387 回答
0

Supervisor将允许您这样做,以及具有一些其他功能,例如 FastCGI 支持、如果服务崩溃则自动重生服务(同时对它很聪明,如果它一遍又一遍地崩溃就不会重新启动它),并保留其输出日志.

在它被安装配置为在启动时运行之后,您可以修改它的配置文件以添加一个运行程序的部分。一个简单的例子可能是这样的:

; this is a comment
[program:example]
command = /path/to/program --some-args maybe-another-arg

这确实是一个简单程序所必需的,但还有许多其他配置选项可用;请参阅文档

添加配置后,您可以告诉 Supervisor 添加/删除(并启动/停止)您在配置中添加或删除的任何进程:

$ sudo supervisorctl update

如果需要,您也可以手动启动和停止服务:

$ sudo supervisorctl start example
$ sudo supervisorctl stop example
$ sudo supervisorctl restart example

您还可以看到所有进程的漂亮状态显示,例如:

$ sudo supervisorctl status
cgi-pass                         RUNNING    pid 4223, uptime 68 days, 23:57:22

并查看程序输出记录的内容:

$ sudo supervisorctl tail example         # stdout
$ sudo supervisorctl tail example stderr  # stderr
$ sudo supervisorctl tail -f example      # continuous

可用命令的文档可通过supervisorctl help.

于 2013-02-24T00:29:42.140 回答