有一天,我在Debian Jessie系统上修补了Docker,无法使用systemd启动docker守护进程。 但是,如果使用sudo dockerd命令启动它, sudo dockerd守护程序会正常运行。 这是我用来启动它的systemd命令: tom@vincent:/tmp$ sudo systemctl start docker.service Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details. 这是我从状态命令中得到的: tom@vincent:/tmp$ sudo systemctl status docker.service ● docker.service – Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled) Drop-In: /etc/systemd/system/docker.service.d └─service-overrides.conf Active: failed (Result: start-limit) since Mon 2017-07-03 11:34:28 CDT; 8s […]
我有一个运行Debian 8 Jessie的Linux服务器,我试图在Github上安装Docker。 我收到以下错误任何时候我尝试启动Docker服务返回: admin@srvr1:~$ sudo systemctl status docker.service ● docker.service – Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled) Active: failed (Result: start-limit) since Thu 2017-07-06 16:09:08 EDT; 47s ago Docs: https://docs.docker.com Process: 32666 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE) Main PID: 32666 (code=exited, status=1/FAILURE) Jul 06 16:09:08 yjuoy5v1ka systemd[1]: docker.service holdoff time over, scheduling […]
我想在启动时为每个用户启动一项服务。 原因是我需要在我的服务器上为多个用户创build一个vnc服务器。 将不会有本地login,所以login时无法启动用户服务。 我可以为每个用户编写一个系统服务,并使用启用逗留,但我仍然需要为每个用户编写一个服务。 我知道我可以使用模板来处理vnc端口,但是我想要的是写一个模板 /etc/systemd/system/vncserver@[email protected]我将是我希望它出现在端口。 [Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=@user PAMName=login PIDFile=/home/@user/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target 并为每个用户调用它 systemctl start vncserver@[email protected] systemctl start vncserver@[email protected] systemctl start vncserver@[email protected] 我只是觉得为每个用户编写一个服务似乎很麻烦,容易出错。 谢谢
显然network-online.target在系统启动时只能工作一次,但是即使networking实际上被禁用,它仍然保持活动( https://github.com/systemd/systemd/issues/5909 )。 有没有办法做一些等同于network-online.target当networking不可达时将会closures状态?
systemd做链接共享库有趣吗? 我有一个php扩展,它在php扩展目录之外加载一个共享库。 如果我运行php-cli或从CLI启动php-fpm,它将按预期工作,而phpinfo()将显示扩展如何构build: Compile-time ORACLE_HOME /path/to/oracle_home Libraries Used -Wl,-rpath,/path/to/oracle_home/lib -L/path/to/oracle_home/lib -lclntsh 当使用systemd(systemctl)启动php-fpm时,这个错误出现在日志中: NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/oci8.so' – libclntsh.so.12.1: cannot open shared object file: No such file or directory in Unknown on line 0 -lclntsh不应该使用rpath来查找所需的库吗? 为什么systemd打破这个? 注意:将以下内容添加到单元文件不起作用: Environment=LD_LIBRARY_PATH=/path/to/oracle_home/lib 在/etc/ld.so.conf.d/下也不会有帮助
我有一个单元文件,我想修改一些属性。 我已经能够使用/etc/systemd/system/unitname.service.d/目录扩展所有的属性,但无法获得WantedBy属性的扩展。 原始单元文件(deluged.service) [Unit] Description=Deluge Bittorrent Client Daemon Wants=network-online.target After=network-online.target [Service] Type=simple User=media Group=media ExecStart=/usr/local/bin/deluged -d -u 0.0.0.0 [Install] WantedBy=multi-user.target /etc/systemd/system/deluged.service.d/override.conf [Unit] BindTo=sys-subsystem-net-devices-tun0.device After=sys-subsystem-net-devices-tun0.device [Service] ExecStart= ExecStart=/usr/local/bin/deluged -d -i 10.10.10.1 -u 0.0.0.0 [Install] WantedBy= WantedBy=sys-subsystem-net-devices-tun0.device 除了WantedBy当我运行systemctl enable deluged它似乎仍然正常工作,它仍然创build了multi-user的符号链接,并且在新的位置没有创build链接。 我已经search了关于扩展/重写的文档,我还没有看到任何关于WantedBy讨论,所以我不知道是否有可能扩展它。 我做错了什么或者是不可能的?
我需要修改这个文件 /usr/lib/systemd/system/docker-latest.service 这是docker – 最新的参数。 我需要改变其中一个的价值… 但是,由于这是Atomic OS(RHEL),所以文件系统处于只读状态。 我怎样才能解决这个问题,或者什么是改变这个价值的正确方法。 在这个特定的情况下,它确实发生了 MountFlags=slave to MountFlags=shared
systemd具有OOMScoreAdjust选项,该选项允许调整已启动进程的oom-killer分数。 引用systemd文档 : OOMScoreAdjust= 为已执行的进程设置内存不足杀手的调整级别。 取一个-1000之间的整数(以禁止这个进程的OOM查杀)和1000(很有可能在内存压力下杀死这个进程)。 有关详细信息,请参阅proc.txt 。 在我的设置中,我在AWS上部署了一个NodeJs服务器。 在节点服务器旁边,EC2实例上没有其他的东西运行(期望监视和基本的操作系统进程)。 有ELB健康检查到位,最终应该取代破碎的EC2实例。 不过,如果存在内存问题,我想知道是否增加OOMScoreAdjust以使内核更喜欢杀死节点服务器进程是一种很好的做法,因为它可以自动重新启动。 在systemd中,它可能看起来像这样: OOMScoreAdjust=1000 Restart=always 我不得不承认,我的理解是有限的。 我目前的理解是,它很可能不会有真正的区别,最好保留默认值: 如果内存耗尽过程是节点服务器,它将最有可能被杀害。 如果罪魁祸首是另一个进程,重新启动节点服务器将无济于事,ELB运行状况检查应该最终负责replace实例。 不过,我很好奇,如果有更好的理解的人已经想通了。 启用它只会是systemd脚本中的一行。 如果有疑问,我宁愿让内核杀死Node进程,而不是任何随机的系统服务。
我试图运行一个PHP脚本24小时与systemd。 脚本的terminal输出通常是不相关的,所以我设置“StandardOutput = 0”和“StandardError = 0”,以避免千兆字节的数据混乱的日志文件。 但是当我不时地使用它时,看到这两者真是太棒了: sudo systemctl status xyz.service 我发现没有办法做到这一点 – 这就是我所拥有的: [Unit] Description=xyz.php [Service] ExecStart=/xyz.php Restart=always RestartSec=10 StandardOutput=null StandardError=null [Install] WantedBy=multi-user.target
我很难让nginx和dovecot在Ubuntu 17.10下启动。 我得到的错误是例如 dovecot[721]: Error: bind(2a02:c207:xxxx:xxxx::x, 4190) failed: Cannot assign requested address dovecot[721]: Error: service(managesieve-login): listen(mail.domain.tld, 4190) failed: Cannot assign requested address nginx[726]: nginx: [emerg] bind() to [2a02:c207:xxxx:xxxx::x:x]:80 failed (99: Cannot assign requested address) IP在/etc/network/interfaces中定义,主机在/etc/hosts中定义,如果在服务器启动后手动启动服务,一切正常。 我甚至尝试使用systemctl edit dovecot并添加覆盖 [Unit] After=network-online.target 但没有改变。 任何想法我失踪? 奇怪的是,SSH守护进程也绑定到一个特定的IP,并开始启动没有问题。