我的Node.js服务器upstart作业configuration: start on (net-device-up and runlevel [2345] and started td-agent) stop on runlevel [016] respawn env HOME="/var/nodes" script chdir $HOME exec /usr/local/bin/node index.js -c app/config/live >> /var/log/node/server.log 2>> /var/log/node/server_error.log end script 当我运行: initctl check-config node 我懂了: node start on: unknown job td-agent 服务器启动时,节点closures,但我可以手动启动它: service node start node start/running, process 1156 编辑:如果我删除and started td-agent ,它启动时启动。 但是我需要在td-agent之后启动Node。 […]
Unix有像新贵,天使,上帝等工具,以保持进程在系统启动时不断运行,并可以重新启动失败的进程。 Windows有能力做到这一点原生?
通常我可以通过键入sudo service nginx reload来重新加载我的nginxconfiguration,并且一切都是可爱的。 然而,今天我试了一下,得到了reload: Not running我试着重新启动nginx,起初我收到一条消息,说没有当前的实例正在运行(这与ps -ef有冲突,它有一个PID匹配/var/run/nginx.pid ),然后似乎开始了一个新的实例,但似乎没有做任何事情。 此外,重新加载命令的控制没有返回给我。 任何人都有这种情况的经验? 这是一个生产机器,所以我不知道发生了什么事情,不知道该如何在testing实例上重现这一点。 谢谢!
我有以下启动脚本,它应该以分离模式启动或停止屏幕: #!/bin/sh # node2 # Maintainer: @KittBlog # Authors: [email protected] ### BEGIN INIT INFO # Provides: node2 # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: node2 in screen detached mode # Description: node2 in screen detached mode # […]
我试图写一个新贵的脚本启动轨道上启动。 脚本如下: #orbited start on startup stop on shutdown script exec /usr/local/bin/orbited –config=/etc/orbited.cfg end script 当我运行新兴的轨道时,我得到了这样的东西: orbited start/running, process 605 但是当我这样做后,我正确地运行状态,我得到: orbited stop/waiting 脚本即使在运行时也无法启动。 有任何想法吗? 谢谢!
我有一个自定义的upstart脚本来pipe理Node API服务。 该脚本pipe道输出到/var/log/upstart/api-access.log 。 我所看到的是旧的日志被归档到api-access.log.1.gz ,但是没有创build一个新的api-access.log文件。 任何想法,为什么这可能会发生,或者我能做些什么来使它正确? 我的upstart文件的脚本部分如下所示: script chdir /opt/www/api exec sudo -u www-data NODE_ENV=production npm start >> /var/log/upstart/api-access.log end script
我有一些使用setuid作为非特权用户运行的upstart脚本。 应该在/var/run/my-service : /var/run/my-service/v1.pid创buildPid文件。 新贵脚本是由一个脚本创build的,脚本也创build了/var/run/my-service并设置了权限,所以一切都起作用。 但是重启后这个文件夹将会消失,服务将会失败。 我试过这个: pre-start script [ -n $PID_DIR ] && [ ! -d $PID_DIR ] && mkdir $PID_DIR sudo chown my-user:my-group $PID_DIR end script setuid my-user 但它不起作用: sudo: no tty present and no askpass program specified my-user is not in the sudoers file. This incident will be reported. 我想这是因为setuid会影响所有进程,即使它是在pre-start和sudo start my-service被使用。 […]
当我有一个暴发户的脚本像.. exec start-stop-daemon –exec /tmp/test.sh –background –start 我想将保存在某个地方的pid文件,并稍后使用它stop或restart ,对不对? 那么默认情况下创build的pid文件在哪里?
我计划从Solaris / x86迁移到RHEL6。 部分迁移将把服务从SMF迁移到RHEL6等价物,这似乎是新贵。 尽pipeinit.d脚本似乎仍然受到支持,但是我想要利用更复杂的init守护进程,尤其是对于作业监视(重新启动等)function。 我想就以下几点收集一些想法: 1)新贵是否足够的工作主pipe,也就是说,是否不需要象守护神/监督这样的独立pipe理者? 2)与典型的init.d脚本相比,新兴脚本看起来非常简单。 如果我正在将一个init.d脚本移植到Upstart,那么只需“执行/etc/init.d/myjob start”即可。 这包括RHEL安装的程序,如httpd。 3)新贵们对于pid文件是否有所作为,对于这个过程的分叉模式有什么期待? 4)对Upstart的stream程pipe理方面是否有任何直接的指导?我的意思是控制重新启动的条件? 例如在进入维护状态之前重新启动进程的次数,或忽略监督进程的subprocess中的错误/核心转储。 任何其他相关的想法或指南将不胜感激。 TIA
我在我的一台Ubuntu服务器上托pipe了几个Django站点。 直到最近,我一直在使用Cherokee HTTPd,它可以select像Django站点一样启动后端应用程序,但是我只是转向了nginx。 在切诺基下,我只是“运行”Django网站(网站存储在/web/ ): cd /web/mywebsite/; python manage.py runfcgi workdir=/web/mywebsite method=threaded socket=/web/mywebsite/sock pidfile=/web/mywebsite/pid maxspare=3 maxrequests=500 然后我连接到/web/mywebsite/sock的套接字。 切诺基也运行这个作为我select的用户,在我的情况www-data 。 这种方法在切诺基下对我很有帮助,但是现在我正转向nginx,我没有什么能够抓住我的手来进行stream程pipe理。 环顾四周,有数百种不同的方式来pipe理这个问题。 初始化脚本,cron检查,daemontools。 但是,因为我在Ubuntu上(可能永远是)Upstart似乎有道理……但我从哪里开始呢? 有人能给我一个运行上面的暴发脚本的例子,如果它死了会重新生成它吗? 我有几个django站点坐在/web/ (他们是目录中唯一的目录),所以如果有一个恶作剧的方式,我可以得到这个新贵的脚本启动它们(具有相同的设置),并监视它们,这将是超级超级棒。