标签: upstart

新贵 node.js 无法保存文件,权限错误?

前几天我有了自己的 linode 服务器,并从 aws linux 上移动了一个我正在玩的小型 nodejs/express。一切都很好,但是如果我用 upstart 启动应用程序,它就不会以正确的权限运行,也无法将文件写入磁盘。我尝试了新贵脚本的各种变体,以 root 身份,以我的用户名,www-data 身份,但没有任何效果。我将publicexpress的目录设置为 777 即使只是作为测试,但没有运气。我开始我的新贵工作sudo start now-images-manager。当我运行时,ps -ef我得到以下输出:

root     25150     1  0 11:26 ?        00:00:00 sudo node /home/myusername/sites/now-images-manager/app.js
root     25151 25150  0 11:26 ?        00:00:03 node /home/myusername/sites/now-images-manager/app.js
Run Code Online (Sandbox Code Playgroud)

这是我的新贵脚本:

#!upstart
description "now-images-manager startup script"
author      "me@me.com"

start on startup
stop on shutdown

script
    export HOME="/root"
    echo $$ > /var/run/now-images-manager.pid
    exec sudo node /home/myusername/sites/now-images-manager/app.js >> /home/myusername/sites/now-images-manager/now-images-manager.sys.log 2>&1
    # exec sudo -u myusername /usr/bin/node /home/myusername/sites/now-images-manager/app.js >> /home/myusername/sites/now-images-manager/now-images-manager.sys.log 2>&1 …
Run Code Online (Sandbox Code Playgroud)

upstart ubuntu node.js

5
推荐指数
1
解决办法
1146
查看次数

grep 在新贵脚本中失败

我有一个服务的新贵配置,需要检查它启动时进程的存在。这听起来很容易,但我已经尝试了 3 个小时来解决这个问题,但我迷路了。问题似乎是一些 grep 语句导致 upstart 中的脚本退出,导致启动服务失败。但是 upstart 不记录任何内容,它只是退出脚本并消失了。

以下是触发问题的一些示例行:记录第一个回声及其 grep 的输出,记录第二个回声,但不记录其 grep 的输出。在第二个 echo upstart 之后,退出脚本并停止。问题是添加 -v 选项或其他类似使用 [[:digit:]] 之类的正则表达式类的选项。似乎我需要转义一些字符,但我根本不知道如何转义。一个简单的 -v 或类似的东西不起作用。

script
  echo grep
  ps ax | grep "postgres: wal writer process" | grep "grep"
  echo grep2
  ps ax | grep "postgres: wal writer process" | grep -v "grep"
end script
Run Code Online (Sandbox Code Playgroud)

有没有人知道我做错了什么以及如何解决问题?

script shell upstart escaping

4
推荐指数
1
解决办法
2009
查看次数

新贵:无法识别的服务(CentOS 6.4)

我从这个 gist创建了一个新贵服务。我把它放入:

[andrey@vm01 ~]$ ll /etc/init/play.conf
-rw-r--r--. 1 root root 1255 Dec  1 20:50 /etc/init/play.conf
Run Code Online (Sandbox Code Playgroud)

我还安装了 upstart,因为我的系统上没有它:

sudo yum install upstart
Run Code Online (Sandbox Code Playgroud)

我重新启动了几次,但仍然出现此错误:

[andrey@vm01 ~]$ sudo service play status
[sudo] password for andrey:
play: unrecognized service
Run Code Online (Sandbox Code Playgroud)

你有什么想法吗?

centos java upstart

4
推荐指数
1
解决办法
4620
查看次数

Ubuntu,控制init启动

Ubuntu 使用 upstart 而不是 sysvinit。但是仍然有运行级别和其中的链接。

我已经安装了 tor 并且它已将自己添加到操作系统的启动中。现在我想删除它,流行的选项是从运行级别删除启动和停止服务的链接或使 /etc/init.d/ 脚本不可执行。这很好,但是如果我想再次将 tor 放在启动列表中,这将是有问题的。我怎么知道将正确的序列放在正确的运行级别目录中。

有没有完整的指南?这有什么规则?任何工具来管理初始化?

请告诉

upstart runlevel init ubuntu

3
推荐指数
1
解决办法
5160
查看次数

这些 exec su 参数有什么作用?

这个命令的开关和参数是什么意思?

exec su -s /bin/sh -c 'exec "$0" "$@"' root -- /opt/nsq/bin/nsqd
Run Code Online (Sandbox Code Playgroud)

具体的--部分和exec "$0" "$@"应该做什么。

我知道$0为脚本设置一个循环以保持运行。

您可以忽略该/opt/nsq/bin/nsqd部分。这是我正在运行的应用程序。

linux shell shell-script upstart init

3
推荐指数
1
解决办法
2813
查看次数

如何将新贵启动的进程置于前台?

是否可以将 upstart 启动的进程置于前台?

root@me:~# ps aux | grep my-app
root      2208  0.2  0.0   1456   480 ?        S    17:38   0:01 /opt/me/my-app
root@me:~# fg 2208
-bash: fg: 2208: no such job
root@me:~# fg $(pidof my-app)
-bash: fg: 2208: no such job
Run Code Online (Sandbox Code Playgroud)

linux bash upstart

3
推荐指数
1
解决办法
454
查看次数

如何在新贵中每小时重新启动服务?

我有一个新贵服务定义为:

/etc/init/sshproxy.conf

description    "Lenik's secret tunnel thru *.ssh.myserver.com"
author        "??? (Lenik)"

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

script

    # -T disable pseudo-tty allocation
    # -f go to background after login but before command exec
    # -n stdin from /dev/null, must be used when ssh is run in bg.
    # -N no command
    # -D "dynamic" app-level port forwarding.
    sudo -usshproxy ssh -qTfn -ND *:7878 ssh.myserver.com

end script
Run Code Online (Sandbox Code Playgroud)

但是 ssh 隧道在几个小时后似乎变得僵化了,所以我想每小时重新启动它,如何在这个 .conf 文件中执行它,或者我应该编写另一个 cron.hourly 作业?

debian upstart ssh-tunnel redhat-enterprise-linux

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