Articles of systemd

虚拟机迁移后,Haproxy无法启动(Debian 8 )

我们在Debian 8虚拟机上运行HAProxy 1.6.1。 我正在把我们的2个实例移动到一个不同大小的虚拟机,但是,当我重新启动时,他们没有回来。 我甚至不能运行haproxy二进制文件。 以下是我尝试时得到的结果: ./haproxy Illegal Instruction sudo ./haproxy [no output] ./haproxy -v Illegal Instruction sudo/haproxy -v [no output] 同样的事情,如果我尝试使用-c -f检查configuration(尽pipe我不认为这是configuration问题)。 以下是我在kern.log中的内容: Mar 7 11:41:41 rproxyws1 kernel: traps: haproxy[4031] trap invalid opcode ip:4843a0 sp:7fff51856ac8 error:0 in haproxy[400000+cf000] 看起来发生的一件事是移动过程中的内核更新(从4.1.5到4.4.0),但我已经手动重新引导到旧的内核,但是新的问题依然存在。 有没有人有任何想法!? 谢谢!

在使用PrivateTmp时访问系统tmp目录中的文件

我使用启用PrivateTmp的php-fpm 。 我必须从PHP中读取一个由远程部署代理复制到/tmp目录的文件。 由于PrivateTmp已启用,因此无法直接访问/tmp目录。 当启用PrivateTmp时,是否可以从system /tmp文件夹读取文件? 我尝试在/var/temp创build一个到/tmp的符号链接,并通过/var/temp访问这个文件,但是没有成功。 /var/tmp目前是从/tmp挂载的,而且我也尝试通过/var/tmp访问文件,没有任何成功。

使用systemd作为特定用户运行时loggingstdout

考虑下面的test-echo.service : [Unit] Description=Testing journalling of stdout [Service] ExecStart=/bin/echo hello world [Install] WantedBy=multi-user.target 其预期结果如期在期刊上: $ sudo systemctl enable test-echo $ sudo systemctl start test-echo $ sudo journalctl -e -u test-echo > … systemd[1]: Started Testing journalling of stdout. > … echo[20178]: hello world $ sudo systemctl stop test-echo 现在我在[Service]部分下添加User=ubuntu 。 ubuntu是一个现有的常规用户。 $ sudo systemctl daemon-reload […]

使用systemd重新启动Postfix而不丢弃连接

在CentOS7上,使用systemd或其他方式,有没有比重新启动postfix更好的方法: sudo systemctl restart postfix 上述不会破坏正在发生的任何活动邮件连接吗? 我正在寻找像Apache的优雅重启之类的东西,并想知道是否有可能,或者是否有必要。

systemd的mysqld.service – parsing资源值失败,忽略:40000 – LimitMEMLOCK

我得到这个错误的mysql systemd[1]: [/usr/lib/systemd/system/mysqld.service:39] Failed to parse resource value, ignoring: 40000 LimitMEMLOCK mysql systemd[1]: [/usr/lib/systemd/system/mysqld.service:39] Failed to parse resource value, ignoring: 40000 Centos 7与MySQL 5.7当我设置MYSQL 5.7的LimitMEMLOCK限制。 LimitMEMLOCK=40000 为什么不能设置LimitMEMLOCK的数字限制? LimitMEMLOCK的目的是LimitMEMLOCK ? 是唯一LimitMEMLOCK=infinity ? * #cat /etc/*-release CentOS Linux release 7.3.1611 (Core) NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" […]

systemd'在启动时以不同的用户login时运行shell脚本'

问题:我想要在启动时从不同用户的login环境运行一个shell脚本。 这是我的.service文件: [Unit] Description=Weather Application Server [Service] Type=oneshot User=weather RemainAfterExit=yes ExecStart=/usr/local/weather/startfeed ExecStop=/usr/local/weather/stopfeed [Install] WantedBy=multi-user.target 这从命令行工作(即键入“systemctl开始/停止weatherService”)。 但是,当我重新启动机器,我通过journalctl -se得到以下错误: — Subject: Unit weatherServer.service has begun start-up — Defined-By: systemd — Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel — — Unit weatherServer.service has begun starting up. Jan 10 19:21:48 localhost.local.local systemd[1]: Started D-Bus System Message Bus. Jan 10 19:21:48 localhost.local.local systemd[784]: Failed at […]

Node.js服务器最初与systemd EADDRNOTAVAIL失败

我有一个需要从外部机器的HTTP请求启动脚本,我使用Node.js。 我希望服务器从系统启动。 一切正常,除了看起来服务器在启动过程中过早启动: — Logs begin at Mon 2017-01-23 09:55:21 UTC, end at Mon 2017-01-23 10:36:20 UTC. — Jan 23 09:55:24 powercontrol systemd[1]: Starting Energenie Listener… Jan 23 09:55:24 powercontrol systemd[1]: Started Energenie Listener. Jan 23 09:55:28 powercontrol node[474]: events.js:160 Jan 23 09:55:28 powercontrol node[474]: throw er; // Unhandled 'error' event Jan 23 09:55:28 powercontrol […]

systemd-networkd:关于`/ etc / systemd / network`和`/ usr / lib / systemd / network'之间的区别

我开始在主机和systemd-nspawn容器上尝试systemd-networkd。 在禁用NetworkManager等所有其他networkingpipe理服务之后,在主机上创build了.network文件 /etc/systemd/network 一切正常。 在systemd-nspawn容器中,系统忽略了插入的.network文件 /etc/systemd/network/ 即使我在[Match] .network文件部分正确匹配networking适配器名称(host0)。 以后再用 # networkctl status host0 我已经发现这样的接口正在从中configuration /usr/lib/systemd/network/80-container-host0.network 文件。 我插入了正确的networking设置,一切正常。 从man systemd-networkd : The configuration files are read from the files located in the system network directory /usr/lib/systemd/network, the volatile runtime network directory /run/systemd/network and the local administration network directory /etc/systemd/network. 问题: system network directory和local administration network directory什么区别? […]

使systemd服务以可用磁盘空间为条件

我正在迁移我的初级mysql初始化脚本,检查是否有> 100MB的磁盘空间availabe,如果没有,睡眠10秒,然后再试一次。 我可以像这样在systemd中实现它,但它伤害了我的眼睛。 [Service] RestartSec=10 Restart=on-failure ExecStartPre=/bin/bash -c '/usr/bin/test $(($(/usr/bin/stat -f –format="%a*%S/1024/1024" /data))) -gt 100 || (echo Less than 100MB available on /data; /bin/false)' ExecStart=/usr/sbin/mysqld TimeoutSec=300 有更清洁的解决scheme吗? 当可用磁盘空间低于某个阈值时,可能会停止mysql。 我可以制作一个虚拟单元并将其包含在“ 需求”中吗? 类似于Upstart start on starting mysql的start on starting mysql 。

如何在没有tty的情况下重新启动systemd服务?

也许我看着这个错误的方式,但我想设置我的gitlab ci能够自动部署代码推。 看起来像一个相当简单的过程,我已经成功地把它的大部分工作。 我可能完全误解了systemd是如何工作的,因为我相当陌生。 我有一个节点应用程序,我推到gitlab,这将成功启动部署逻辑,但我所做的最后一步是重新启动应用程序,以确保我实际上拉入所有的代码更改(据我所知,模块的更改不会发生w / o重新启动服务,因为npm高速caching一旦需要保持在内存中的模块)。 我的gitlab ci yaml文件如下所示: stages: – deploy deploy-prod: stage: deploy variables: BRANCH_REF: master script: – git fetch – git checkout $BRANCH_REF – git pull origin $BRANCH_REF – npm install – rm -rf /opt/my-app/www – ln -s $CI_PROJECT_DIR /opt/my-app/www – sh /home/gitlab-runner/restart.sh tags: – production 我可能不需要间接的符号链接,但是这个问题并不重要。 我做了那个restart.sh文件,因为我得到了错误的sudo: sorry, you must […]