标签: upstart

使用 Upstart 记录守护进程的输出

我有一个自定义守护程序,由我的 Ubuntu 服务器上的 upstart 管理。除了我需要捕获(记录)守护进程的输出之外,它运行良好。该负责人节页说,我可以使用console logged要做到这一点,但什么文件,它记录到?

我也读了console logged不再有效的节。我目前使用的是 0.3.9 (Hardy),但几个月后会升级到 0.6.x (Lucid)。如果console logged实际上不适用于更高版本,我应该使用什么?

ubuntu upstart

37
推荐指数
5
解决办法
3万
查看次数

暴发户可以处理配置文件的符号链接吗?

我的所有新贵配置文件都在版本控制之下。我使用 upstart 的理想方法是从我的版本控制存储库(mercurial - 这并不重要)创建软链接到 /etc/init 但 upstart 无法看到作业。如果我将文件从存储库目录复制到 /etc/init.d ,一切都很好。

有人知道为什么 upstart 无法处理符号链接甚至硬链接吗?

谢谢

克里斯

upstart ubuntu-10.04

30
推荐指数
2
解决办法
4598
查看次数

如何让暴发户退后,而不是放弃

我想让 Upstart 做两件事:

  1. 停止尝试如此快速地重新生成失败的进程
  2. 永不放弃尝试重生

在理想的世界中,新贵会尝试在 1 秒后重新启动一个死进程,然后在每次尝试时将延迟加倍,直到达到一个小时。

这样的事情可能吗?

ubuntu upstart

24
推荐指数
2
解决办法
1万
查看次数

新贵脚本:网络启动后运行任务

我正在努力将我当前的服务器设置移动到更新的硬件,并从 ubuntu karmic koala 迁移到 lucid lynx。目前我正在使用 gw6c(从 gogo6 网站编译,而不是来自存储库的版本)为我的系统获取 ipv6 访问权限。在 karmic koala 系统上,我使用了简单的 init.d 脚本来启动 ipv6 客户端

 #! /bin/sh
/usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
Run Code Online (Sandbox Code Playgroud)

我想既然它在任何运行级别运行,它应该转换为

respawn
console none

start on startup

stop on shutdown

script
exec /usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
emit free6_ipv6_started
end script
Run Code Online (Sandbox Code Playgroud)

这从 initctrl 开始工作正常,但它在启动时显然无法启动。- 其状态为停止/等待。以其他方式开始时它工作正常(并重新生成)。关于我哪里出错的任何想法,以及适当的“开始”争论是什么?

编辑:确切的错误是“init:gw6c 主进程(xxx)以状态 8 结束”,然后是进程重新生成,xxx 是我怀疑的 PID。我也有一半怀疑这是因为 gw6c 在联网之前启动,我需要在 gw6c 之前启动我的 eth0

ubuntu upstart ubuntu-10.04

23
推荐指数
1
解决办法
3万
查看次数

为什么我的新贵服务没有列在 service --status-all 中

我为我在 Ubuntu 12.04 上运行的服务创建了一堆新贵工作。我可以成功启动它们并停止:

service my_service start
service my_service stop
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时它们没有列出

service --status-all
Run Code Online (Sandbox Code Playgroud)

任何想法我可能会错过什么?

为了创建服务,我刚刚在 /etc/init.conf 中添加了 .conf 文件。

ubuntu service upstart ubuntu-12.04

19
推荐指数
1
解决办法
1万
查看次数

在 Debian 中是否有“标准”的方式来制作守护进程?

我需要从 Debian 中的应用程序创建一个守护进程。在 Debian 中是否有任何标准工具,例如 Ubuntu 中的“新贵”?我只需要启动-停止命令,就可以使用一些选项和 pid 文件将程序作为守护进程启动,并用 pid 文件杀死它。

我查看了 init.d,但似乎这些用于启动时启动。我想手动启动我的守护进程。

debian daemon upstart debian-lenny

18
推荐指数
1
解决办法
4万
查看次数

CentOS 6 和新贵

新的 CentOS 6 带有 Upstart,取代了 init。我正在尝试将 /etc/inittab 文件转换为新的 upstart 格式。这个特定的服务器只有 15 个左右的 inittab 条目,但是,其他服务器有 >30 个。我们主要想要 inittab 和 upstart 的“重生”部分。但是,我一直在阅读我能找到的所有 upstart 文档(几乎全部基于 Ubuntu,而且显然是在较旧版本的 upstart 上)并且一无所获。我可以创建一个配置文件(我们称之为 /etc/init/test.conf)。该文件包含此(注意,匿名)

start on runlevel [345]
stop on starting shutdown

respawn
#Comment about what it does
exec su -c "/usr/bin/ssh -2CNL 11111:127.0.0.1:11111 10.10.1.1" username
Run Code Online (Sandbox Code Playgroud)

如果我发出一个initctl reload-configuration工作被认可。我可以通过打电话来启动它,initctl start test工作就会开始。

但是,这在重新启动时不起作用,只能手动进行。我尝试将启动命令修改为以下内容,但都没有运气

start on started

start on (local-filesystems and net-device-up IFACE!=lo)

start on net-device-up IFACE=eth0 
Run Code Online (Sandbox Code Playgroud)

以及我在不同示例中提到的十几种其他方式。似乎没有人启动脚本。(test.conf 和这个文件夹中的所有其他文件一样,由 root 拥有,并且是 644)

我错过了一些明显的东西吗?

upstart centos6

18
推荐指数
3
解决办法
3万
查看次数

从 /etc/environment 获取服务的暴发户读取环境

/etc/environment新贵服务提供定义的环境变量的最佳方法是什么?

我认为简单地.在脚本部分采购它们是行不通的,因为执行脚本时sh需要export在每个定义前添加一个额外的脚本......

upstart

17
推荐指数
1
解决办法
7834
查看次数

新贵:允许普通用户停止和启动我的自定义服务

我已经使用 upstart 在启动时启动了我的网络服务器应用程序。这是新贵脚本:

# web app node upstart file at /etc/init/webapp.conf

description "web application"

start on started mongodb
stop on runlevel [06]

respawn
respawn limit 10 100

env NODE_ENV=production

pre-start script
    ulimit -n 2048
end script

exec start-stop-daemon --start -c mainuser --exec /usr/bin/make -- -C /home/mainuser/app start-prod
Run Code Online (Sandbox Code Playgroud)

这在 Ubuntu 服务器 10.04 LTS 上完美运行,我对此感到非常高兴。

但是,我有一个部署 shell 脚本,它使用 SSH 登录mainuser(这不是 sudoer),然后将工作目录更新为最新的部署版本。

这里的问题是需要重新启动服务,以便应用程序加载新的源文件。然而,mainuser得到一个...

mainuser@Saturn101:~$ stop webapp
-bash: stop: command not found
Run Code Online (Sandbox Code Playgroud)

...当试图阻止它时。我必须运行sudo stop webapp,但该用户不能这样做,因为他不是 sudoer。出于安全原因,我也不希望他成为 sudoer,而且我不想插入 sudo …

permissions deployment upstart

16
推荐指数
1
解决办法
1万
查看次数

EC2 linux 任何和所有新贵工作都返回“无法识别的服务”

将一些新贵工作从 Ubuntu 迁移到 EC2 Linux (ElasticBeanstalk) 是一场噩梦

我什至无法完成最基本的任务。我正在使用下面的脚本,它在 Ubuntu 上运行良好,但是当我尝试在 EC2 Linux 中启动它时返回非常无用的“无法识别的服务”。我读过这通常是一个语法错误,但如果这对于 Ubuntu 来说在语法上是正确的,则不会出现这种错误。非常感谢任何帮助,我只需要任何工作示例。

这是在以 root 用户身份创建的 /etc/init/test.conf 中。

安慰:

# sudo service test start
# test: unrecognized service
Run Code Online (Sandbox Code Playgroud)

/etc/init/test.conf:

description "test"

start on startup

script
  echo $(ping -c 1 serverfault.com) > /var/log/testjob.log
end script
Run Code Online (Sandbox Code Playgroud)

upstart amazon-ec2 amazon-web-services

15
推荐指数
1
解决办法
1万
查看次数