标签: upstart

以非特权用户身份运行新贵工作

让新贵工作更改其用户 ID 并以非特权用户身份运行脚本的规范方法是什么?

显然可以使用suor sudo,但这似乎很麻烦(并且会生成不必要的日志行)。

upstart ubuntu setuid

145
推荐指数
5
解决办法
7万
查看次数

如何在 ubuntu 10.10 中禁用新贵服务?

在 10.10 中使用 upstart 而不是 sysvinit。

通过删除 /etc/init/blah.conf 中的相应文件,可以删除您不想要的烦人的新贵服务

然而,这似乎是一种严厉的方法。您如何正确配置 upstart 以便能够通过命令行有选择地打开和关闭这些服务?

作为一个实际示例,此处列出的使用 rcconf 关闭 gdm 的答案不再有效: 如何防止 GDM 在 Ubuntu 上启动时运行?

boot upstart ubuntu

27
推荐指数
2
解决办法
7万
查看次数

如何在 git post-receive hook 中以 root 身份执行命令

我最近刚刚在服务器上为作为 Upstart 服务运行的 Web 应用程序设置了一个远程 git repo。我想使用 post-receive 挂钩来触发更新应用程序代码所需的操作,然后停止然后重新启动 upstart 服务。这是我的 repo.git/hooks/post-receive 文件:

#!/bin/bash
export GIT_WORK_TREE=/var/www/current/myapp/
echo "Checking out new files and restarting app"
echo $USER
git checkout -f
sudo /sbin/stop myapp-service
sudo /sbin/start myapp-service
Run Code Online (Sandbox Code Playgroud)

根据我在这里读到的信息:askUbuntu.com,让 upstart 命令以 root 身份执行的方法是编辑我的 visudo 文件。这是相关的片段:

%sudo   ALL=(ALL:ALL) ALL
admin   ALL=(ALL:ALL) NOPASSWD: /sbin/start myapp-service /sbin/stop myapp-service
Run Code Online (Sandbox Code Playgroud)

但是当我 git push 到遥控器时,我得到如下输出:

$ git commit -am "test" && git push prod master
[master 59ffccd] test
 1 file changed, 1 insertion(+), 1 deletion(-)
Counting objects: …
Run Code Online (Sandbox Code Playgroud)

linux sudo bash git upstart

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

Systemd 错误:可执行路径不是绝对的

我有以下 systemd 代码。

[Unit]
Description=start RCC logger server process
Requires=rcc-drbd.service rcc_check_locked_scr.service s96rcc.service
After=rcc-drbd.service rcc_check_locked_scr.service s96rcc.service

[Service]
ExecStart= exec /var/RCC/RCClogger.sh
Restart=no

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

在我尝试运行它的地方,出现以下错误。

Mar 23 04:45:52 localhost.localdomain systemd[1]: 
[/etc/systemd/system/rcc_logger.service:7] Executable path is not absolute, 
ignoring: exec /v...ogger.sh
Mar 23 04:45:52 localhost.localdomain systemd[1]: rcc_logger.service lacks 
both ExecStart= and ExecStop= setting. Refusing.
Run Code Online (Sandbox Code Playgroud)

我知道这是因为没有 exec 命令的绝对路径,但是由于 exec 作为二进制文件不可用,我不能使用绝对路径。如何让这个 ExecStart 运行?

linux upstart systemd init-script redhat-enterprise-linux

12
推荐指数
2
解决办法
6万
查看次数

如何依赖 Ubuntu 12.04 上的 init 脚本中的新贵工作

我使用的是 Ubuntu 12.04 LTS,该系统主要使用新贵工作。不幸的是,我的系统还依赖于手动编译的dbmail服务器,它只有一个 init 脚本,但没有 upstart 脚本。

使用update-rc.d dbmail defaults我为所有运行级别安装了 dbmail,但不幸的是它在 MySQL 启动之前启动,因此守护进程再次死亡。我也尝试将其移至 S90 或类似版本,但在运行脚本时仍然无法使用 MySQL。

我尝试向脚本的 LSB 标头添加依赖项,如下所示:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          dbmail
# Required-Start:    $local_fs $remote_fs $syslog $network mysql
# Required-Stop:     $local_fs $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start dbmail services
# Description:       Run network services provided by dbmail such as
#                    imap-server, pop3-server, lmtp-server, timsieve-server
### END INIT INFO …
Run Code Online (Sandbox Code Playgroud)

upstart ubuntu ubuntu-12.04

10
推荐指数
1
解决办法
8384
查看次数

新贵:以非特权用户身份运行服务并以 root 身份运行预启动脚本

我有以下新贵的工作:

description "posty api"


start on mysql
stop on shutdown

env RACK_ENV=production

setuid vmail
setgid vmail

chdir /opt/posty_api

pre-start script
    mkdir -p /var/run/posty
    chown -R vmail:root /var/run/posty
end script

exec /usr/local/bin/unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1

post-stop exec kill `cat /var/run/posty/unicorn.pid`

respawn
respawn limit 1 10
Run Code Online (Sandbox Code Playgroud)

要在/var/run我需要 root 权限中创建文件夹。如何以 root 身份运行 upstart 作业的某些部分,而以非特权用户身份运行服务本身?

linux upstart

8
推荐指数
1
解决办法
9149
查看次数

如果程序不在 init.d 中,它在 CentOS 中的哪个位置在启动时启动?

我在 CentOS 上安装了一个软件(GitLab)。它运行良好,但是这个 GitLab 在启动时启动,我不想要那样。所以我查看了一下/etc/init.d以禁用它chkconfig,但我的问题是其中没有gitlab脚本,所以我无法禁用它。

所以这是我的问题:在 CentOS 中还有其他地方可以找到在 CentOS 启动时执行的程序吗?或者更直接地说,如果有人知道如何在不使用的情况下从启动时禁用 GitLab init.d,我很感兴趣!

centos upstart init gitlab

7
推荐指数
1
解决办法
5500
查看次数

如何解决 Upstart 未知作业错误

我根据此处的说明设置了 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 打开它们。



编辑

出于某种原因,中的空行nomilkforme.conf抛出“未知节”错误。我删除这些行,改变start on startupstart on (local-filesystems and net-device-up IFACE=eth0) 按本页面现在我得到

z@ubuntu:/$ start nomilkforme
start: Rejected …
Run Code Online (Sandbox Code Playgroud)

upstart nginx ubuntu

6
推荐指数
1
解决办法
9131
查看次数

关机:/run/initctl:没有那个文件或目录

我将我的服务器更新为 Debian wheezy 并尝试使用它。过了一会儿我想重新启动并遇到错误

shutdown: /run/initctl: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我在网上搜索,发现 initctl 来自 upstart。即使它没有根据 aptitude 安装并且servicesysvinit的命令仍然有效。我很感激任何帮助。

upstart debian-wheezy sysvinit

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

以非特权用户身份控制 Upstart 作业

允许非特权用户控制新贵工作的最佳方法是什么?

通过控制一个新贵的工作,我的意思是启动/停止/重新加载/重新启动它:

start myservice 
Run Code Online (Sandbox Code Playgroud)

我可以想象一种方法是通过 sudo;需要做些什么才能使这成为可能?还有其他/更好的方法吗?

注意:这个问题虽然名称相似,但与作为非特权用户运行新贵工作有很大不同,因为它涉及实际服务的执行,而不是对工作的控制。

sudo services upstart init

5
推荐指数
2
解决办法
1570
查看次数