标签: upstart

在'git pull'ing我的Django项目之后,重新启动/重新加载Gunicorn(通过Upstart)的更好方法

我正在寻找比sudo restart projectname每次发布更好的东西git pull origin master,这将我的最新更改下拉到Django项目.restart我相信这个命令与Upstart有关,我用它来启动/支持我的Gunicorn服务器进程.

此重新启动会导致短暂停机.击中Web服务器(nginx)的用户将获得500,因为Gunicorn仍在重启.事实上,它似乎立即重启,但页面加载需要几秒钟.

关于如何使这个无缝的任何想法?理想情况下,我想git pull自动发出我的和Gunicorn重新加载.

django nginx upstart reload gunicorn

54
推荐指数
6
解决办法
5万
查看次数

使用Monit而不是基本的Upstart设置有什么好处?

我正在配置我的服务器以运行node.js作为守护进程.我已经设置了Upstart来处理节点的启动和关闭,这非常有效.下一步是确保node.js在它死亡时重新启动.一些指南建议使用Monit(或Fugue)来监控进程(在Monit的情况下,通过向服务器发出HTTP请求并等待响应).

我很高兴能使用类似或monit的赋格曲,但我不知道为什么人们不(或不能),只要用暴发户的重生功能.我假设Upstart将监视启动过程的PID,如果它死了就再次启动它.Monit或Fugue给你的Upstart不是什么?

deployment upstart monit node.js

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

如何配置Jenkins在端口80上运行

我正在运行Ubuntu 11.10并且已经运行sudo apt-get install jenkins在这个系统上安装Jenkins.

我已经看过一些关于如何设置反向代理(Apache,Nginx等)的教程,但是这是一个专门用于jenkins的VM,我希望在jenkins在端口80上运行时保持尽可能精简.

我找到了upstart配置/etc/init/jenkins.conf并将端口修改为80env HTTP_PORT=80

当我启动jenkins via时service jenkins start,ps显示它运行了几秒钟然后终止.

这是因为jenkins作为jenkins特权端口上的用户运行吗?如果是这样,我该如何解决这个问题?欢迎任何其他想法.

这是upstart配置:

description "jenkins: Jenkins Continuous Integration Server"
author "James Page <james.page@ubuntu.com>"

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

env USER="jenkins"
env GROUP="jenkins"
env JENKINS_LOG="/var/log/jenkins"
env JENKINS_ROOT="/usr/share/jenkins"
env JENKINS_HOME="/var/lib/jenkins"
env JENKINS_RUN="/var/run/jenkins"
env HTTP_PORT=80
env AJP_PORT=-1
env JAVA_OPTS=""
env JAVA_HOME="/usr/lib/jvm/default-java"

limit nofile 8192 8192

pre-start script
    test -f $JENKINS_ROOT/jenkins.war || { stop ; exit 0; …
Run Code Online (Sandbox Code Playgroud)

ubuntu continuous-integration hudson upstart jenkins

48
推荐指数
5
解决办法
7万
查看次数

Daemon vs Upstart for python脚本

我已经用Python编写了一个模块,并希望它在启动后连续运行,并且需要在需要更新其他模块时停止它.如果模块崩溃或者没有运行,我可能会使用monit重新启动它.

我正在经历不同的技术,如Daemon,Upstart和许多其他人.

这是最好的方法,以便我通过我的所有新模块使用这种方法来永远运行它们?

python daemon upstart monit python-daemon

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

Ubuntu,新贵,并创建一个监控pid

下面是redis的新手脚本.如何创建一个pid所以我使用monit进行监控?

#!upstart
description "Redis Server"

env USER=redis

start on startup
stop on shutdown

respawn

exec sudo -u $USER sh -c "/usr/local/bin/redis-server /etc/redis/redis.conf 2>&1 >> /var/log/redis/redis.log"
Run Code Online (Sandbox Code Playgroud)

ubuntu upstart

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

启用了upstart日志记录输出

除了执行http://upstart.ubuntu.com/wiki/Debugging中建议的显式日志记录指令外,有没有办法启用outstart发生的输出?

  • 提出了什么事件
  • 什么服务改变了它的状态(开始/停止/死亡)
  • 发出了什么信号
  • 启动时产生的服务输出

ubuntu logging upstart ubuntu-10.04

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

重新启动Upstart实例进程

我正在运行多个工作实例,如本答案中所述:自动启动多个upstart实例

问题:我可以一次重启所有实例吗?

要开始我的工作,我可以做:

initctl启动我的工作者

然后允许我这样做:

initctl status worker N = 1 worker(1)启动/运行,进程551

initctl status worker N = 2 worker(2)start/running,process 552

有没有办法做这样的事情:

initctl重启我的工作者

我希望能够重新启动所有实例,而无需知道有多少实例正在运行.

这是我的my-workers.conf

start on stopped cloud-init
stop on shutdown

env NUM_WORKERS=4

script
  for i in `seq 1 $NUM_WORKERS`
    do
      start worker N=$i
    done
end script
Run Code Online (Sandbox Code Playgroud)

和worker.conf

stop on shutdown

chdir /path/to/current

respawn

instance $N

script
  exec su -c "/home/worker/.rvm/bin/rvm-shell -c 'bundle exec rake work 2>&1 >> /var/log/worker-$N.log'" worker
end script
Run Code Online (Sandbox Code Playgroud)

ubuntu upstart

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

为什么不能upstart运行'source bin/activate'?

由于某种原因,暴发户不会激活我的virtualenv.

这就是我运行它的方式

script
    # My startup script, plain old shell scripting here.
    cd path/to/env
    source bin/activate
    ....
end script
Run Code Online (Sandbox Code Playgroud)

virtualenv在手动启动时运行正常

为什么这不起作用?

python upstart virtualenv

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

如何自动重启节点服务器?

我们正在完成一个项目的开发,客户端已经在使用它,但偶尔会出现一些错误 - 崩溃服务器.

我知道我可以在linux上注册一个服务作为'upstart'脚本,以便在崩溃时重启我的节点服务.

但我们的服务器运行其他东西,所以我们无法重启它.好吧,实际上,在写作的时候,我意识到我有两个问题:

  • 'upstart'工作而不必重启吗?有些东西只是对我说悄悄话:)
  • 如果没有,我的节点服务器崩溃时还有什么其他选项可以'重新生成'?

restart upstart node.js

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

自动启动多个upstart实例

我们使用PHP gearman worker并行运行各种任务.一切都运行得很好,我有愚蠢的小shell脚本,当我想要它们时将它们旋转起来.作为一名程序员(因此也是懒惰的),我想看看我是否可以通过一个新手脚本来解决这些问题.

我想出了如何使用实例节,所以我可以使用实例编号启动它们:

description "Async insert workers"
author      "Mike Grunder"

env SCRIPT_PATH="/path/to/my/script"

instance $N

script
    php $SCRIPT_PATH/worker.php
end script
Run Code Online (Sandbox Code Playgroud)

这很好用,就像这样开始它们:

sudo start async-worker N=1
sudo start async-worker N=2
Run Code Online (Sandbox Code Playgroud)

我想要使​​用这些工作者的方法是调整其中的一些(可能每个核心一个等),我想在启动时这样做.要清楚,我不需要upstart脚本来检测核心数量.我很高兴只说"做8个实例",但这就是我想要多次运行的原因.有没有办法让我在upstart脚本中使用"start on"子句自动执行此操作?

例如,启动实例1,2,3,4?然后让它们在关机时正常退出?

我想我可以将它挂钩到init.d脚本中,但我想知道upstart是否可以处理这样的事情,或者是否有人已经弄清楚了这个问题.

干杯啦!

upstart instance worker gearman

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