问题标签 [upstart]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - node.js 主进程被 ABRT 信号杀死,但未被 process.on("SIGABRT",...) 捕获
我正在使用 upstart 启动一个守护进程来运行 node.js(使用 express 和 connect-redis)http 和 https 服务器(在同一个节点 .js 文件中)
http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/
启动时一切正常,所有应用程序功能似乎都按预期工作,但始终如一地,在不同的持续时间后(有时在几个小时后,有时在一天后),守护进程被杀死,我拥有的唯一日志在
守护进程日志:
myserver init: myupstartscript 主进程 (3410) 被 ABRT 信号杀死
在我的节点 js 文件中,我放置了:
没有一个捕捉到事件。
我不知道如何模拟事件。当我尝试使用
我的 process.on('SIGABRT',..) 抓住了那些。
我注意到的其他事情:
- 如果我在没有 https 服务器的情况下运行服务,则永远不会发生崩溃。
- 根据我的其他日志,崩溃不是由用户触发的事件引起的
- 我依赖的其他应用程序特定服务(redis-server、mongod)似乎都与事件无关,它们继续照常服务。
- 我已将 upstart 脚本设置为在崩溃时重新生成,并且确实如此。
关于我如何追踪它的任何帮助?
我的设置:Linux iLV1 2.6.35.4-rscloud #8 SMP Mon Sep 20 15:54:33 UTC 2010 x86_64 GNU/Linux node v0.5.11-pre
谢谢。
node.js - 使用 upstart 和 Procfile 运行 node.js 应用程序
我有一个 node.js 应用程序。
我写了一个包含以下内容的 Procfile。
不确定我是否做得对,但我尝试使用 ruby gem 工头运行它。
没发生什么事。进程不运行。
请评论我是否做得对,如果有任何其他方式运行这是我的本地。我最终想要做的是在最终部署到生产环境时使用 upstart 导出它。
nginx - 工头不使用 NGINX
我正在尝试使用Foreman(版本 0.31.0)来管理我们的应用程序的进程,但我对 nginx(nginx/1.0.10 + Phusion Passenger 3.0.11)不太满意。
这是我的 Procfile 中的相关行:
当我启动应用程序时,Foreman 报告 nginx 已启动,然后立即终止:
但是,nginx 实际上正在运行,即使 Foreman 报告了其他情况。
同样,如果我导出到 Upstart:
运行sudo start my_app
,nginx 正常启动。但sudo stop my_app
不会停止 nginx。它继续运行。
让 nginx 与 Foreman 一起工作有什么诀窍吗?
注意:我在Foreman 上发现了这个问题,我想知道它是否相关。
mount - 如何确保在其父文件系统之后安装“绑定”文件系统?
我最近在我的 fstab 中添加了几个条目,以允许我将一些目录重新绑定到我的文件系统树中的其他位置,就像这样
然而,/mnt/smb/foo 恰好是一个 SMB 文件系统(在 Samba 服务器上),在 fstab 前面有一行看起来像
(显然,这些行已被匿名)
问题是,现在我在启动时收到错误“ The disc drive for /home/mishagale/sourcecode/bar is not ready yet or not present
。” 如果我通过点击跳过安装S
,系统启动正常,但我必须手动安装有问题的安装点。
有没有一种方法可以指示 Ubuntu在成功挂载bar
之前不要尝试挂载?foo
我相信新贵应该可以做到这一点,但我不确定如何去做。
我可以(并且现在)只需打开该noauto
选项bar
并设置一个脚本,以便稍后运行它们,但这对我来说似乎是一个难题,我有兴趣学习使用 Upstart 的“正确”方法.
ubuntu - 新贵没有重生守护进程
我有一个用 C 语言编写的守护程序,它使用 daemon() 调用。
如果它意外失败,我希望新贵重生。
我在 Ubuntu 8.04 上使用了一个相当老的新贵版本,0.3.9。
我创建了以下文件(/etc/event.d/my-daemon):
地位:
开始:
它显示了我何时ps aux | grep my-daemon
按预期进行操作。然后我用kill -9
期望它重生来杀死它,但ps aux
之后再次发出什么也没显示。我status my-daemon
得到:
有任何想法吗?
ubuntu - 忽略 umask 的新贵`unicorn`
我upstart v1.4
用来启动我的应用程序服务器,它被称为unicorn
.
upstart
配置文件如下所示:
进程必须使用 运行0774
,也就是说ug+rwxo+r
,至少对于目录来说是这样。用户和组是共享的,例如 nginx 服务器、上传、员工登录等。
我观察到目录是使用错误的权限创建的:
据我所知,我的应用程序中没有任何原因导致这种情况。
根据附加gdb
到进程,调用call umask(0)
,有效的 umask 是75
, 或0o113
。
这是gdb
会议:
的 umask113
将说明对 的权限664
,这似乎是我所看到的。
我在这里做错了什么,是独角兽行为不端吗?暴发户是否忽略了我的节?我应该将节定义为003
,不是0003
吗?我的gdb
会话工作正常吗,%o
printf()
语法是否正确?
ruby-on-rails - 独角兽和新贵
我很难编写一个新贵配置文件来启动(并保持活动状态)Ubuntu 机器上的独角兽 Web 服务器。
我应该如何设置respawn
和expect
参数?启用后,进程会不断重新启动(我在respawn
顶部看到它的 PID 不断变化,旧的变成僵尸)。如果我删除该指令,则该过程在死亡时不会重新启动。
根据 upstart 文档,expect 参数可能至关重要:独角兽分叉行为是什么?有什么线索吗?
node.js - Upstart env 节没有为 Node.js 应用程序设置环境变量(如 NODE_ENV)
我的服务器有一个 Upstart 脚本,如下所示:
但是,该应用没有看到 NODE_ENV 设置为生产。事实上,如果我在应用程序中使用 console.log(process.env),我看不到 NODE_ENV 或 CUSTOM。任何想法发生了什么?
顺便说一句, NODE_ENV=production node app.js 工作得很好。
ruby - 在我的 gem 中,我应该在哪里放置非 Ruby 文件?
我想在我的 Ruby gem 中放置一个 Upstart 配置文件。这是我目前最好的猜测
一般来说,配置文件和其他类型的脚本放在 gem 中的什么位置?
更新:我将示例中的路径从Upstart/rt_watchdog.conf
更改lib/upstart/rt_watchdog.conf
为 ,因为这就是我现在决定采用的方法,但我仍然对此感觉不太好。
ubuntu - 如何在monit中结合进程和文件检查?
概括
如何在 Monit 中组合多个检查?我想检查进程活动和文件内容/时间戳。
冗长无聊的解释
我正在开发一个 Monit 守护程序来保持我的 Bukkit Minecraft 服务器正常运行。它做了几项检查。目前我有这个代码:
它工作......但它很慢。如果出现问题,我必须等待 20 秒,直到服务器终止。但我需要该超时,因为服务器会不时进行一些重新加载(刷新配置、清理内存等),这会产生很少的延迟。没有timeout 20 seconds for 2 cycles
服务器,如果重新加载,服务器将立即终止。
好的,如果真的出现问题,我等待 20 秒直到服务器重新启动是没有问题的。但大多数时候(当出现问题时)服务器上的所有安全机制都会停止工作。
因此,如果服务器没有响应,我需要找到一种方法立即重新启动服务器,但在重新加载时给它一些时间。
我有这种方法:当发出任何命令(包括我用来检查服务器状态的重新加载和 API 调用)时,服务器会将某些内容写入日志文件。所以日志文件的时间戳就是最后一条命令的时间戳。在重新加载期间,不会将任何内容写入文件。所以我可以通过简单的时间戳检查来检测重新加载,并且只有当服务器当前重新加载时,我才会给它 20 秒。