我正在尝试在运行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) 我有一个 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)
我该如何解决?
我有一项服务,我想从系统启动开始.我已经为它构建了一个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 --user在sudo su - myuser命令切换用户后启用?
我已经改变了/etc/default/docker与DOCKER_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作品.
这让我很困惑!
我试图为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) 在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) 在使用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.
我有一个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) 我正在Coreos服务器上的docker容器中运行react应用程序.让我们说它是从dockerhub拉出来的https://hub.docker.com/r/myimages/myapp.
现在我想定期检查app容器的dockerhub映像是否已更新,以查看我在本地运行的映像是否落后.
与远程图像相比,检查本地泊坞窗图像是否过时的最有效方法是什么?到目前为止,我发现的所有解决方案都是bash脚本或推动更新的外部服务.我想找到一个尽可能与docker原生的解决方案,并且希望不要从其他地方推送通知(以警告服务器更新图像).
我创建了一个目标文件来组合我的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)
我真的不明白那个消息是什么意思,任何线索?