问题标签 [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.
php - 在 php 脚本中重新启动作业(新贵)
我目前正在为我最近的项目编写管理门户。我一直在用我的电脑来争取暴发户的工作,现在它是,我希望能够从网络上操作暴发户。我需要在我的 php 脚本中执行以下操作
如您所见,sudo 是这些命令的主题,所以我需要以某种方式从这个 php 脚本运行 sudo。我该如何解决这个问题,或者是否有解决这个问题的方法。
万一这很重要:
ruby - 厨师食谱:不以 Ruby 开头的 Upstart 守护进程
我想运行一个 ruby mongrel 脚本作为我的供应系统 (CHEF) 的最后一步。因此,我编写了一个新贵 .conf 文件,其中包含以下条目:
但是 log.txt 文件为空并正在运行 netstat -an | grep 3000 什么也没显示。我认为该脚本不可执行,但运行 chmod 并没有改变任何东西。
但是,如果我手动执行脚本,我可以启动服务器
脚本的内容是:
我使用 RVM 和 Ruby 1.8.7、Rubygems 1.3.7 在 Vagrant 上运行。引导配方是:
任何的想法?谢谢
python - 在新贵工作中从 python 捕获标准输出
当我将 python2.6 脚本的标准输出作为新贵作业运行时,我正在努力将其保存到文件中。
这是我当前的测试脚本:
如果我这样做$ myscript >> /var/log/myscript
,效果很好。我都看到了。
但是,作为一个新贵脚本,如果我使用以下配置
/etc/init/myscript.conf:
我看到这个:
/li>
如果我为 stderr 和 stdout 使用不同的文件,它们都会被创建,但 stdout 始终为空。
我究竟做错了什么?
sockets - MongoDB - 套接字的权限被拒绝:/tmp/mongodb-27017.sock
我在 Ubuntu 10.04 LTS 上不干净地关闭了 MongoDB。现在,当我以 root 身份登录并通过 service mongodb start 运行 Mongodb 时,出现以下错误-
当我通过 root 手动运行 MongoDB 时,它工作得很好。
我可以确认没有 /tmp/mongodb-27017.sock 文件
我从哪里开始故障排除?
python - Tornadoweb webapp 无法通过 upstart 管理
几天前,我发现我的 webapp 在 tornadoweb 框架之上编写并不会通过 upstart 停止或重新启动。新贵只是挂起,不做任何事情。
我调查了这个问题,发现新贵收到了错误的 PID,所以它只能运行一次我的 webapp 守护程序,不能做任何其他事情。
Strace 显示我的守护进程进行了 4 次(!)clone() 调用,而不是 2 次。
一周前一切都很好,新贵完全正确地管理了 webapp。
操作系统是 Ubuntu 10.04.03 LTS(就像几周前一样)。
您有任何解决方法的想法吗?
PS:我知道“expect fork|daemon”指令,它没有任何改变;)
node.js - 处理将二进制数据记录到日志文件
我正在使用以下新贵脚本启动节点进程,将 stdout 和 stderr 记录到单独的文件中:
问题是两个日志文件的头部都有二进制数据。我不能使用更少或更多来快速检查这些日志,这非常烦人。有什么想法可以防止该进程记录二进制数据吗?
python - 通过python获取dbus对象实例时传递环境变量
我正在使用 python 来确定 Ubuntu 上新贵工作的状态。
我最近更改了新贵工作,使其具有这样的 Instance 节:instance $some_var
. 正如预期的那样,我的代码不再有效。
如果我尝试:
它无法告诉我dbus.exceptions.DBusException: org.freedesktop.DBus.Error.InvalidArgs: Unknown parameter: some_var
我需要将 some_var 环境变量传递给 dbus 接口。我该怎么做?在 os.environ 中设置它似乎没有奏效。
ruby-on-rails - 使用 Upstart 管理 Unicorn w/ rbenv + bundler binstubs w/ ruby-local-exec shebang
好吧,这正在融化我的大脑。这可能与我不太了解 Upstart 的事实有关。提前抱歉这个长问题。
我正在尝试使用 Upstart 来管理 Rails 应用程序的 Unicorn 主进程。这是我目前的/etc/init/app.conf
:
这很好用——独角兽的起步很好。不好的是,检测到的 PID 不是 Unicorn master 的,而是一个sh
进程的。这本身也不是那么糟糕——如果我没有使用自动独角兽零停机部署策略的话。因为在我发送给我的独角兽主人后不久-USR2
,一个新的主人产生了,而旧的主人死了……这个sh
过程也是如此。所以 Upstart 认为我的工作已经死了,如果我愿意,我不能再重新启动它restart
或停止它。stop
我玩过配置文件,尝试将 -D 添加到 Unicorn 行(像这样$APP_ROOT/bin/unicorn -c $APP_ROOT/config/unicorn.rb -E production -D
:)以守护 Unicorn,我添加了该expect daemon
行,但这也不起作用。我也试过expect fork
了。所有这些事情的各种组合都可能导致start
并stop
挂起,然后 Upstart 对工作的状态感到非常困惑。然后我必须重新启动机器来修复它。
我认为 Upstart 在检测 Unicorn 何时/是否分叉时遇到问题,因为我在脚本ruby-local-exec
中使用了 rbenv + shebang 。$APP_ROOT/bin/unicorn
这里是:
此外,ruby-local-exec
脚本如下所示:
所以里面有一个exec
让我担心的地方。它启动了一个 Ruby 进程,它启动了 Unicorn,它可能会或可能不会守护自己,这一切都首先发生在一个sh
进程中......这让我严重怀疑 Upstart 跟踪所有这些废话的能力。
我想要做的甚至可能吗?据我了解,expect
Upstart 中的节只能被告知(通过daemon
或fork
)期望最多两个分叉。
redis - 以守护程序形式运行 Redis 并使用 Upstart 管理它不起作用
我为 Redis 编写了一个 Upstart 脚本,如下所示:
然后我通过它的 redis.conf 配置 redis:
所有的文档和我自己的实验都说 Redis 以守护进程的形式分叉了两次,并且“期望守护进程”应该可以工作,但是 Upstart 脚本总是保留前父进程的 PID (PID - 1)。有没有人有这个工作?
instance - 自动启动多个新贵实例
我们使用 PHP gearman worker 并行运行各种任务。一切都很好,我有愚蠢的小 shell 脚本可以在我想要它们的时候启动它们。作为一名程序员(因此很懒惰),我想看看我是否可以通过一个新贵脚本来启动这些。
我想出了如何使用实例节,所以我可以用实例号开始它们:
这很好用,像这样开始它们:
我想使用这些工人的方式是启动一些工人(可能每个核心一个,等等),我想在启动时这样做。需要明确的是,我不需要 upstart 脚本来检测内核数量。我很高兴只说“做 8 个实例”,但这就是我想要多次运行的原因。有没有办法让我在新贵脚本中使用“start on”子句来自动执行此操作?
比如启动实例1、2、3、4?然后让他们在关机时正常退出?
我想我可以将它连接到 init.d 脚本中,但我想知道 upstart 是否可以处理这样的事情,或者是否有人已经解决了这个问题。
干杯伙计们!