标签: systemd

主管未能重启一半的时间

我正在尝试在运行Debian 8.1的机器上使用Uwsgi和supervisor部署Django应用程序.

当我重新启动时,sudo systemctl restart supervisor它无法重启一半的时间.

$ root@host:/# systemctl start supervisor
    Job for supervisor.service failed. See 'systemctl status supervisor.service' and 'journalctl -xn' for details.
$ root@host:/# systemctl status supervisor.service
    ? supervisor.service - LSB: Start/stop supervisor
       Loaded: loaded (/etc/init.d/supervisor)
       Active: failed (Result: exit-code) since Wed 2015-09-23 11:12:01 UTC; 16s ago
      Process: 21505 ExecStop=/etc/init.d/supervisor stop (code=exited, status=0/SUCCESS)
      Process: 21511 ExecStart=/etc/init.d/supervisor start (code=exited, status=1/FAILURE)
    Sep 23 11:12:01 host supervisor[21511]: Starting supervisor:
    Sep 23 11:12:01 host systemd[1]: supervisor.service: control process exited, code=exited …
Run Code Online (Sandbox Code Playgroud)

debian uwsgi supervisord systemd

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

Docker 系统尚未使用 systemd 作为 init 系统启动

我有一个 Ubuntu 18.04 映像在我的 docker 容器上运行。我登录并安装了Openresty。还安装了systemd。当我使用命令“ systemctl ”时,出现此错误:

System has not been booted with systemd as init system (PID 1). Can't operate.
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

ubuntu systemd docker

21
推荐指数
4
解决办法
5万
查看次数

在sudo su - myuser之后,我可以使用'systemctl --user'来控制用户systemd吗?

我有一项服务,我想从系统启动开始.我已经为它构建了一个ap @ .service定义作为模板,因为可能有很多实例.

在root systemd中定义,这很好用,并启动和停止系统的服务.systemctl enable ap@inst1正如预期的那样安装服务实例.Root也可以毫无问题地启动和停止服务.该服务在其自己的帐户(myuser)中运行,而不是root,由ap @ .service模板中的User = myuser控制.

但我希望用户'myuser'能够在不影响系统安全的情况下启动和停止自己的服务.

我切换到使用用户systemd,并启用了延迟loginctl enable-linger myuser.然后,我启用~myuser/.config/systemd/user目录中定义的服务.现在,该服务按照设计与系统一起干净地启动和停止.如果我以"myuser"身份登录终端systemctl --user start ap@inst1,并且systemctl --user stop ap@inst1两者都能正常运行.

但是,如果我以其他用户(user2)身份登录并sudo su - myuser在终端中执行,则systemctl --user命令现在失败,并显示错误消息"无法获得D-Bus连接:没有此类文件或目录".

如何systemctl --usersudo su - myuser命令切换用户后启用?

linux sudo systemd

20
推荐指数
1
解决办法
3825
查看次数

DOCKER_OPTS在配置文件/ etc/default/docker中不起作用

我已经改变了/etc/default/dockerDOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"(泊坞窗1.4.1版本在Ubuntu 14.04),但它不采取对我有什么影响(在港不听2375).似乎docker不读取这个初始配置文件,因为我发现export http_proxy环境也不起作用.

只有sudo docker -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -d作品.

这让我很困惑!

ubuntu upstart systemd docker

19
推荐指数
3
解决办法
3万
查看次数

在systemd中使用CPUQuota

我试图为dd命令的CPU使用量设置一个硬限制.我创建了以下单元文件

[Unit]
Description=Virtual Distributed Ethernet

[Service]
ExecStart=/usr/bin/ddcommand
CPUQuota=10%

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

它调用以下简单脚本

#!/bin/sh
dd if=/dev/zero of=/dev/null bs=1024k
Run Code Online (Sandbox Code Playgroud)

正如我在本指南中看到的: http ://www.freedesktop.org/software/systemd/man/systemd.resource-control.html我的dd服务的CPU使用率不应超过10%.但是当我运行system-cgtop命令时,使用率约为70-75%.

我有什么错误的想法,我该如何解决?

PS当我执行时,systemctl show dd我得到有关CPU的以下结果

CPUShares=18446744073709551615
StartupCPUShares=18446744073709551615
CPUQuotaPerSecUSec=100ms
LimitCPU=18446744073709551615
Run Code Online (Sandbox Code Playgroud)

linux cpu fedora limit systemd

19
推荐指数
1
解决办法
5402
查看次数

systemd:设置PATH的"Environment"指令

systemd单元文件中设置PATH变量的正确方法是什么?看了几个例子后,我尝试使用下面的格式,但变量似乎没有扩展.

Environment="PATH=/local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

我正在使用以下版本的systemd在CoreOS上尝试此操作.

systemd 225
-PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS -ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN
Run Code Online (Sandbox Code Playgroud)

linux systemd coreos

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

无法禁用systemd serial-getty服务

在使用Arch Linux的Raspberry Pi上,有一个名为的服务活动serial-getty@AMA0.

单元文件是:/usr/lib/systemd/system/serial-getty@.service

作为root我可以调用

systemctl stop serial-getty@ttyAMA0
systemctl disable serial-getty@ttyAMA0
Run Code Online (Sandbox Code Playgroud)

但重启后,服务已启用并再次运行.

禁用后为什么启用服务?如何永久禁用它?

UPDATE

systemd使用发电机在/ usr/lib中/ systemd /系统发电机/是称为systemd-getty的发电机二进制.此二进制文件在系统启动时运行,并将符号链接serial-getty@ttyAMA0.service添加到/run/systemd/generator/getty.target.wants.

我终于找到了一个肮脏的解 我在/usr/lib/systemd/system/serial-getty@.service中注释掉了所有操作.无论如何,服务确实似乎已开始,但没有阻止ttyAMA0.

tty archlinux gpio raspberry-pi systemd

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

当作为systemd/systemctl服务运行时,本地模块的python导入失败

我有一个python应用程序,我想作为系统服务运行.我手动运行应用程序时运行正常.当我将其作为服务运行时,它无法找到安装的本地模块pip install -e my_module.

该应用程序的主要代码如下:

print(sys.argv)
import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version) for i in installed_packages])
print(installed_packages_list)
print('doing tox')
import tox
print('doing my_mod')
import my_mod
print(my_mod.__file__)
from my_mod.auth.http_auth_provider import HTTPAuthProvider
Run Code Online (Sandbox Code Playgroud)

当我手动运行时,我得到(注意my-mod包含在'已安装的包'中的第二行):

['/usr/bin/pv_api']
['aiohttp==0.19.0', 'chardet==2.3.0', 'jsonschema==2.5.1', 'pip==7.0.0', 'pluggy==0.3.1', 'pv-api==0.0.0', 'py==1.4.31', 'pycrypto==2.6.1', 'pymongo==3.1.1', 'pyyaml==3.11', 'setuptools==19.6.2', 'six==1.10.0', 'tox==2.3.1', 'virtualenv==14.0.6', 'my-mod==0.1.0', 'webauthsession==1.1.1']
doing tox
doing my_mod
/root/my_module/my_mod/__init__.py
Run Code Online (Sandbox Code Playgroud)

在运行服务时,日志看起来像这样(注意my-mod不包含在'已安装包'的第二行)::

2016-02-26_00:39:01.90403 ['/usr/bin/pv_api']
2016-02-26_00:39:01.90406 ['aiohttp==0.19.0', 'chardet==2.3.0', 'jsonschema==2.5.1', 'pip==7.0.0', 'pluggy==0.3.1', 'pv-api==0.0.0', 'py==1.4.31', 'pycrypto==2.6.1', 'pymongo==3.1.1', 'pyyaml==3.11', 'setuptools==19.6.2', 'six==1.10.0', 'tox==2.3.1', 'virtualenv==14.0.6', 'webauthsession==1.1.1']
2016-02-26_00:39:01.90407 …
Run Code Online (Sandbox Code Playgroud)

python python-import systemd

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

如何在不从其他地方推送的情况下检查我的本地docker镜像是否过时?

我正在Coreos服务器上的docker容器中运行react应用程序.让我们说它是从dockerhub拉出来的https://hub.docker.com/r/myimages/myapp.

现在我想定期检查app容器的dockerhub映像是否已更新,以查看我在本地运行的映像是否落后.

与远程图像相比,检查本地泊坞窗图像是否过时的最有效方法是什么?到目前为止,我发现的所有解决方案都是bash脚本或推动更新的外部服务.我想找到一个尽可能与docker原生的解决方案,并且希望不要从其他地方推送通知(以警告服务器更新图像).

bash systemd docker coreos

17
推荐指数
3
解决办法
2852
查看次数

尝试在systemd中启用/启动自定义目标时出现问题

我创建了一个目标文件来组合我的fedora 18中的所有个人服务,我测试了服务,我可以单独启动,但如果我尝试启用目标,我收到一条错误消息!

[root@ghostrider system]# systemctl enable developer.target
Failed to issue method call: Invalid argument
Run Code Online (Sandbox Code Playgroud)

这里是目标代码:

###########################################################################
# Target para ativar servicos de desenvolvimento em Java
###########################################################################
#/etc/systemd/system/developer.target

[Unit]
Description=Processes Java
After=default.target

[Install]
Alias=developer.target
Run Code Online (Sandbox Code Playgroud)

我真的不明白那个消息是什么意思,任何线索?

service target systemd

16
推荐指数
2
解决办法
3万
查看次数