Articles of 新贵

究竟如何浏览Ubuntu的启动文件?

我知道在Ubuntu中有一个从init.d切换到init的切换。 Init.d对我来说很好,但我可以看到和欣赏这个变化。 我也非常感激configuration文件不是犯规的XML,像launchd的。 好主意。 然而,使用特立独行,我仍然看到init.d中的很多东西。 我曾经以为新贵是前进的道路。 我确信upstart + init.d并不像一个人那么简单。 那么如何确定启动过程,或者在哪里查找文件来控制某个服务器呢? 编辑:更重要的是,我想问问新贵和sysvinit之间的互动是如何工作的? 我对wiki很怀疑,其中大部分似乎来自旧版本。

开始使用Upstart时正在发送SIGINT信号

我有一个Linux应用程序,它打开了几个串行设备( /dev/ttyUSB X),并从它们读取/写入。 当我从命令提示符(Ubuntu 10.04,bash)运行它,它完美的作品。 $sudo ./my_program /dev/ttyUSB0 #sudo for permissions on the device 我希望这个程序能够在启动时运行,如果它死了就重新生成 – 所以我把它放到Upstart config( /etc/init/* )中,并把它叫做“ my_service ”。 当我重新启动机器时,my_service执行并运行my_program。 然而,几秒钟后(当它打开ttyUSB并从中读取时),我的进程收到一个SIGINT。 我无法确定它来自哪里。 这不是在设备上的权限问题,他们打开()罚款和几个字节得到转移确定。 使用waitsiginfo()我能够得到0x80或SI_KERNEL 。 所以我知道这不是来自另一个进程,而是来自内核本身。 没有人在控制台上击CTRL – C或ALT – CTL – DEL – 为什么内核给我一个SIGINT ? 更糟糕的是,根据这个信号,我的程序正常退出 – 被Upstart重新生成,并且再次SIGINT'ed! 有什么办法可以找出这个信号源自哪里,为什么? 是否有一定程度的内核debugging,可以启用一些这样的灯光? 为什么Upstart和bash手动启动的不同行为?

如果暴发重生限制被击中,我该如何执行一个行动?

我有一个暴发户的工作: description "foreman" start on runlevel [2345] stop on runlevel [06] respawn respawn limit 3 60 chdir /home/deploy/app/current env RAILS_ENV=production exec sudo -u deploy bundle exec foreman start 我们遇到了一个应用程序文件中的stream氓angular色导致其中一个后台工作人员失败,但应用程序运行正常(奇怪)的情况。 该应用程序运行良好,但工人从来没有工作。 如果它不能开始这个工作,我想要做一些事情(发一封电子邮件),因为如果一切顺利的话,这并不是完全明显的。 有没有什么东西可以成为新贵来应对这个问题,还是我必须要有创造力?

我如何限制一个进程可以使用新贵(Ubuntu 11.10)

我想限制处理器能力的数量(Resque for Rails应用程序)使用,我发现这个新贵看起来很有前途,可能做我想要的: http://upstart.ubuntu.com/wiki/Stanzas#limit 但是我不太清楚如何使用它,比如说我想让这个进程使用我的两个CPU中最多一个的50%,我应该在我的新创文件中写什么? 另外,当过程达到极限时会发生什么?

暴发户不触发sysinit

在服务器启动Upstart运行,但不会触发转换到正常的运行级别,我想知道如何解决它。 例如,系统日志已经启动,时间设置等,但是Apache,Cyrus IMAP,Postfix等服务没有启动。 如果我执行telinit 2所有其余的init脚本将正常运行。 服务器是Ubuntu 12.04 LTS,从10.04 LTS升级到8.04 LTS。 我无法确认这是升级的后果,因为在过去的一两个月之前,我已经注意到在重新引导服务时出现问题,但没有将其固定在Upstart上。 我对系统的其他部分相当不错,但对Upstart知之甚less,所以我不确定要包含哪些额外的信息,但我会提供任何必要的信息。

新贵工作开始,停止和重新开始其他工作

我有大约3到8个不同Ubuntu工作的新手,希望能够轻松地启动,停止或重新启动。 看起来,新贵可以很容易地做到这一点,但我不知道如何。 我应该使用依赖来做一个依赖于所有其他的虚拟工作吗? 我的一个要求是,如果没有他们重新启动,我希望仍然能够阻止其他人启动。 我应该怎么做呢?

Upstart显示不存在的进程运行

我在Ubuntu-1210-quantal-64-minimal上使用新贵1.8-0ubuntu1。 它显示我nginx运行,当它不是。 # service nginx status nginx start/running, process 2543 # ps -p 2543 PID TTY TIME CMD 我的configuration: # nginx description "nginx http daemon" author "George Shammas <[email protected]>" start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] env DAEMON=/opt/nginx/sbin/nginx env PID=/opt/nginx/logs/nginx.pid expect fork #respawn #respawn limit 10 5 #oom never pre-start script $DAEMON […]

编写一个允许用户input用户名和密码的暴发户文件

我试图写一个OpenConnect的暴发户文件。 这个任务是非常简单的,但我卡住了,因为我不想在configuration文件中提供用户名和密码,但提示用户每次提供它们。 放在/etc/init/openconnect.conf的upstart文件是 exec /usr/sbin/openconnect –script=/etc/vpnc/vpnc-script my-gw.example.com 但是,当我执行 start openconnect 这个过程立即背景,我没有机会提供input。 我怎样才能让这个新贵的工作要求用户input?

新贵 – 使“重新加载”像“重新启动”

我有一个守护进程,在运行reload时不响应SIGHUP发送。 它在没有特权的用户下运行,如果没有sudo权限,我无法重新启动它。 有没有办法使reload行为与restart相同,通过更改任务configuration,所以我可以作为非特权用户运行它? 我在Ubuntu 12.04上使用Upstart 1.5。

与Upstart的supervisord总是挂起

我正在尝试与Upstart开始supervisord。 Upstart工作非常简单和传统(开始,停止,作者描述,重生,执行)。 我试过在前台运行supervisord (“-n”),省略了Upstart工作中的“expect”节。 开始和结束都挂起。 我已经尝试运行supervisord作为守护进程(默认模式),并设置“期望”既“叉”和“守护进程”(和“停止”,在绝望尝试)。 启动和停止都挂起。 Upstart日志不会显示我尝试的任何条目。 我可以开始的唯一方法是编写作业并重新启动系统。 它始终正常启动。 但是,当我尝试手动停止并启动它时,该命令总是阻塞。 我对Upstart基础架构和configuration非常熟悉。 有人有build议吗?