Articles of 系统

如何限制由systemdpipe理的服务的内存

我知道ulimit,我知道如何限制我明确启动的进程的内存,或开始使用脚本。 但在这种情况下,我有一个由systemdpipe理和启动的服务。 我怎样才能限制它的最大内存,并杀死(甚至更好:防止内存分配(返回NULL malloc / realloc ))达到内存使用最大?

单元polkitd.service被屏蔽

Ubuntu版本升级失败后,电脑开始出现奇怪的performance。 在最初启动失败后,我们设法让它进入命令行 – 但它拒绝networking(所以没有apt ,没有LDAP,没有NFS …)。 我可以SSH 进入机器,但没有出站stream量尝试成功。 显然升级卸载network-manager ,所以我试图通过scp -ing所需的.deb文件回来,但是…没有去。 modemmanager , network-manager失败 Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit polkitd.service is masked. (g-io-error-quark, 36) 和policykit-1在说 polkitd.service is a disabled or a static unit not running, not starting it. 所以看着polkitd ,实际上它被掩盖了: $ systemctl is-enabled polkitd.service masked-runtime (一个工作系统显示static )。 […]

是否有可能使用一个graphics卡/两个磁头对系统进行多分区?

我想使用Ubuntu Xenial 16.04来设置一个多主机configuration。 经过一番研究,现在看来,通过“loginctl”调用systemd是可行的。 (例如在这里看到)。 在深入了解教程之前,因为我现在没有所需的资料(手上只有一个键盘),我想知道是否有可能只使用一个显卡来实现“两个席位”设置两路输出,HDMI和DVI。 似乎需要两张牌,但我想确定。 谢谢

在需求开始时启动systemd服务

我有一个服务取决于mysql.service通过Requires= 。 这是必要的,因为服务崩溃,如果mysql不可用。 执行systemctl restart mysql工作正常。 它首先停止我的服务,重新启动MySQL,并再次启动我的服务。 我怎样才能configuration我的单元,那又启动了,如果我运行systemctl stop mysql && systemctl start mysql ? 这在debian的无人值守升级的mysql期间尤其是一个问题,因为更新过程使用stop / start而不是restart 。

开始和停止一个systemd单位与另一个

我有两个服务A.service和B.service。 当A退出/被杀害/停止时,我要B停止。 另外,当A重新启动时,我希望B重新启动。 我尝试了如何启动和停止与另一个systemd单位给出的答案? 并设置我的文件,如下所示: A.service [Unit] Description=A Before=B.service Requires=B.service [Service] ExecStart=/usr/share/A ExecStopPost=/usr/evo/exit_handler.sh %p Restart=always StartLimitBurst=3 StartLimitInterval=300 B.service [Unit] Description=B BindsTo=A.service [Service] Type=forking ExecStart=/usr/share/B start ExecStop=/usr/share/B stop StartLimitBurst=5 StartLimitInterval=10 Restart=always 当我杀死A或做一个systemctl重新启动A,我看到B重新启动。 但是,当A退出状态0,我没有看到B重新启动。 我已经启用systemddebugginglogin,我看到A的状态更改为已死,但不能自动重启

使用fleet / systemd重置/忽略非零退出代码

我有backup.timer每小时调用backup.service 。 不幸的是,在容器内运行的备份脚本可以成功完成, 但警告返回一个非零的退出代码。 所以,尽pipe一切都可能已经奏效了,容器会以非零的退出码停止。 所以舰队进入失败状态。 在这种情况下,计时器似乎不会再启动这个单元,尽pipe我没有在systemd文档中find任何说明。 要说清楚:对于我来说,让容器以非零的退出码停止是完全正确的。 但是,我的计时器不起作用。 我现在可以把这个脚本封装成另一个叫做als docker入口点的脚本。 但是,我将不得不确保输出的STDOUT和STDERR保持不变。 我也可以在单元失败后运行sudo systemctl reset-failed ,但是这对我来说似乎有点不好意思…(我试过了,在这种情况下,定时器再次运行了这个单元,但是它不起作用ExecStopPost在服务文件中任务) 有没有更好的方法来确保一个单位 不会进入失败状态,虽然它返回非零或 重置它的状态之后,或 告诉定时器运行该单位,尽pipe其状态失败 ?

有没有办法将两个实例化的systemd服务作为一个单元来控制?

我正在尝试在Fedora 15盒子上运行几个python web服务。 它们是通过贴纸运行的,启动它们的唯一区别是它们读取的configuration文件。 这似乎很适合systemd的实例化服务,但我希望能够将它们作为一个单元来控制。 需要这两种服务的系统化目标似乎是解决这个问题的方法。 启动目标确实启动了两个服务,但是停止目标会使它们运行。 这是服务文件: [Unit] Description=AUI Instance on Port %i After=syslog.target [Service] WorkingDirectory=/usr/local/share/aui ExecStart=/opt/cogo/bin/paster serve –log-file=/var/log/aui/%i deploy-%i.ini Restart=always RestartSec=2 User=aui Group=aui [Install] WantedBy=multi-user.target 这里是目标文件: [Unit] Description=AUI [email protected] [email protected] After=syslog.target [Install] WantedBy=multi-user.target 这种分组甚至有可能与systemd?

对initramfs systemd服务的反思 – 如何?

背景 我正在运行ArchLinux,使用systemd二进制文件启动必要的服务,作为initramfs(root fs解密,挂载等)的一部分。 我想研究什么是系统单元作为这个阶段的一部分,什么时候开始。 systemd-analyze plot仅显示了切换根后发生的所有单元的时间图。 交换机根单元(根据定义,initrd引导序列中的最后一个单元)指出: [Service] # … ExecStart=/usr/bin/systemctl –no-block –force switch-root /sysroot # … 在switch-root系统命令的systemctl手册页有这样的说: switch-root ROOT [INIT] 切换到另一个根目录并在其下执行新的系统pipe理器进程。 这适用于初始RAM磁盘(“initrd”),并且将从initrd的系统pipe理器进程(又名“init”进程)转换到从实际主机卷加载的主系统pipe理器进程。 这个调用有两个参数:要成为新根目录的目录,以及在其下面的新系统pipe理器二进制文件的path,以便作为PID 1执行。如果后者被省略或者为空string,则会自动searchsystemd二进制文件并用作init。 如果省略系统pipe理器path,等于空string或与systemd二进制文件的path相同,initrd的系统pipe理器进程的状态被传递给主系统pipe理器,这允许稍后检查所涉及的服务的状态在initrd引导阶段。 然后在initrds的问题上是安静的… … – 题 启动后,如何反思上面推断的initrd引导阶段所涉及的服务的状态,或者发现甚至运行了哪些单元(如某些是dynamic生成的)?

服务启动请求重复得太快,拒绝启动限制

我有一个systemd服务,显示以下错误service start request repeated too quickly, refusing to start 我知道该服务被configuration为在失败时重新启动,并且一次又一次地重新启动。 但是到底什么时候拒绝重启呢? 有定义它的限制或数量吗? 而且,究竟是什么确切地意味着,在给定的时间内重新启动的次数是多less?

在Ubuntu 15.04上启动docker-systemd与systemd

我有一个docker-compose项目,我想通过systemd控制。 暴发户,我会用一个看起来像这样的脚本: description "Start/Stop server" author "Jim Cortez" start on filesystem and started docker stop on runlevel [!2345] respawn limit 3 240 pre-start script # wait (if necessary) for our docker context to be accessible while [ ! -f /projects/my_server/docker-compose.yml ] do sleep 1 done /usr/local/bin/docker-compose -f /projects/my_server/docker-compose.yml up -d end script script sleepWhileAppIsUp(){ while […]