我有一个/etc/init/boinc-client.override包含一行的文件manual,我用它来阻止 BOINC 客户端启动。(无论如何,我现在不希望它占用 Folding@Home 的 CPU 时间。)
但是,重新启动后,我注意到 BOINC 又重新启动了。
我确信,我已经安装了upstart。
我应该怎么办?
我有这个暴发户脚本
当我运行时:sudo start poxa它会启动进程,但是当我运行时:initctl list它显示我是这样,stop/waiting但是当我检查ps aux | grep poxa它时会显示进程。
而且,正如预期的那样,当我试图阻止它时:sudo stop poxa它返回:stop: unknown instance:
# Upstart Configuration
# put on /etc/init
description "Poxa"
author "Poxa"
start on (filesystem or runlevel [2345])
stop on runlevel [!2345]
#respawn
#respawn limit 10 5
umask 022
console none
pre-start script
test -x /home/ec2-user/poxa/rel/poxa/bin/poxa || { stop; exit 0; }
end script
pre-stop script
echo "[`date -u +%Y-%m-%dT%T.%3NZ`] Stoping..." >> /var/log/poxa.log 2>&1
end script …Run Code Online (Sandbox Code Playgroud) 我正在尝试了解 Linux 以及如何从我打开计算机的那一刻开始使用 Gnome 启动 Ubuntu。
我知道内核首先启动,并在完成启动后运行 init 程序(新贵?)。然后 upstart 查看一些配置文件(某处?)并运行 X 和gnome-shell?
那么顺序是什么,所有说明何时开始以及什么开始的配置文件在哪里?
如您所见,mysql 仅存在于/etc/init.d目录中而不存在于中/etc/rcN.d,因此它不应在启动时启动。
$ sudo find /etc -regex ".*\(rc.*d\|init\.d\).*" | sudo grep "mysql" | sort
/etc/init.d/mysql
Run Code Online (Sandbox Code Playgroud) 我希望能够调试 Upstart 启动的作业的执行顺序(理想情况下不将转储代码注入每个作业文件)。我怎样才能做到这一点?
我有一台服务器可以运行一个小的 Django 应用程序。如果服务器重新启动,我希望 Django 重新启动:
nohup /opt/myapp/manage.py runserver ...
Run Code Online (Sandbox Code Playgroud)
我很难找到一种简单的方法来运行。有教程解释了如何编写成熟的服务、运行级别、init.d 等。但是一定有更简单的方法吗?一个我可以在其中添加一条额外线路的地方?
编辑马克的答案是完美的,单线的工作原理如下:
sudo sed --in-place '/^exit 0/i\cd /opt/appdir\npython manage.py runserver .... &' /etc/rc.local
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用/etc/environment在 12.04 上运行的 upstart 脚本中定义的变量。
我能够将变量导出到子进程,但由于某种原因,我无法在 Upstart 脚本节本身中使用它们。
这有效:
script
. /etc/environment
export NODE_ENV
# node is able to read the NODE_ENV, wonderful!
/usr/local/bin/node /path/to/app/app.js
end script
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在该节中引入一些条件逻辑,那么它将失败:
script
. /etc/environment
export NODE_ENV
# ${NODE_ENV} is not set inside the stanza
if [[ ${NODE_ENV} = 'production' ]]; then
# this will never run
/usr/local/bin/node /path/to/app/app.js
fi
end script
Run Code Online (Sandbox Code Playgroud)
任何想法如何从节内的源文件访问变量?
安装 MySQL 后,出现一些错误并且无法运行 MySQL 守护程序。我试过多次卸载和重新安装,但我不确定发生了什么。
这是我所看到的一个片段:
Setting up mysql-server-5.5 (5.5.31-0ubuntu0.13.04.1) ...
runlevel:/var/run/utmp: No such file or directory
initctl: Unknown job: mysql
Run Code Online (Sandbox Code Playgroud)
sudo service mysql start给我一个unknown job错误,并且mysqld在我的系统上找不到。
除了可能从源代码编译并创建我自己的新贵脚本之外,我不确定从哪里开始。当然,如果可能的话,我想以简单的方式做事。
如何成功运行 MySQL 或解决此问题?
以下是运行安装命令时发生的情况的完整日志:
sudo apt-get install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libaio1 libdbd-mysql-perl libdbi-perl libnet-daemon-perl libplrpc-perl libterm-readkey-perl mysql-client-5.5 mysql-client-core-5.5
mysql-server-5.5 mysql-server-core-5.5
Suggested packages:
tinyca mailx
The following NEW packages will be installed:
libaio1 …Run Code Online (Sandbox Code Playgroud) 我创建了一个名为 watch_folder.conf 的新贵 conf 脚本,我已经在一些 ubuntu 安装中成功使用了它,但由于某种原因,我从以下代码中收到错误消息:
#/etc/init/watch_folder.conf
description "watch folder service"
author "Jonathan Topf"
start on startup
stop on shutdown
respawn
respawn limit 99 5
script
chdir /home/jon/Dropbox/Render\ Farm\ 1/appleseed/bin
exec /usr/bin/python ./watchfolder.py ../../data/
echo "watch_folder started"
end script
Run Code Online (Sandbox Code Playgroud)
如果我查看 /var/log/upstart/watch_folder.log,我会看到以下内容
/proc/self/fd/9: line 2: chdir: command not found
/proc/self/fd/9: line 2: chdir: command not found
/proc/self/fd/9: line 2: chdir: command not found
/proc/self/fd/9: line 2: chdir: command not found
/proc/self/fd/9: line 2: chdir: command not found
/proc/self/fd/9: line 2: …Run Code Online (Sandbox Code Playgroud) 我根据此处的说明设置了 nginx并且一切顺利,但我无法开始
$ start <my app name>
Run Code Online (Sandbox Code Playgroud)
我创建了/etc/init/nomilkfor.me.conf(这是域名),这是文件中的内容:
description "ubuntu 13.10 on Samsung laptop"
author "zeynel"
start on startup
stop on shutdown
setuid deploy
chdir /deploy
console log
env PORT=4000
exec java -jar my-webapp-0.1.0-standalone.jar
Run Code Online (Sandbox Code Playgroud)
我重新加载nginx
$ sudo nginx -s reload
Run Code Online (Sandbox Code Playgroud)
我尝试
$ start nomilkfor.me
Run Code Online (Sandbox Code Playgroud)
但我明白了
start: Unknown job: nomilkfor.me
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我也尝试打开日志文件,/var/log/upstart但我无法用 nano 打开它们。