Questions tagged «systemd»

systemd是传统Linux init的现代替代品。它的主要功能包括表达服务之间的依赖关系和主动启动服务并行化的能力。


1
允许非root用户重新启动服务
背景 : 我创建了一个叫做应用程序myapp与Spring-boot。它包含一个可自我执行的jar,并且与systemd服务兼容。现在,我正在尝试将其与詹金斯集成。 我想要的是: 我希望詹金斯能够: 停止服务。 更换罐子。 重新启动服务。 问题: 到目前为止,只有sudoer可以启动/停止服务。我不希望詹金斯成为一个傻瓜(这看起来很混乱)。 当前结构: 我有一个myapp有/home/myapp文件夹的用户。生成的jar被调用myapp并放在/home/myapp。用户myapp是生成的jar的所有者: myapp@myserver:~/backend$ ll total 53900 drwxrwxr-x 2 myapp myapp 4096 Apr 25 17:09 ./ drwxr-xr-x 6 myapp myapp 4096 Apr 25 17:08 ../ -rw-rw-r-- 1 myapp myapp 511 Apr 20 16:13 application.properties -rwxr--r-- 1 myapp myapp 55175294 Apr 20 …
27 systemd  jenkins 

5
使用systemd自动挂载USB驱动器
我们正在将服务器从非常过时的发行版更新为基于Debian Jessie的现代系统,包括lightdm / xfce,当然还有systemd(和udisks2)。一大难题是自动安装USB驱动器。我们曾经使用一些udev规则来完成此任务。旧的规则几乎仍然有效-创建了挂载点并且驱动器已很好地挂载,但是几秒钟后systemd正在做一些事情来中断挂载,因此后续的访问尝试将导致“传输端点未连接”错误。 通过命令行手动安装驱动器可以正常工作。文件管理器(thunar和thunar-volman,它们依次使用udisks2)也是如此。但是这些都不是可行的选择-这些系统通常无头运行,因此thunar通常无法运行。我们需要能够插入磁盘驱动器以进行基于cron的无人值守备份。 我以为修改udev脚本以产生在执行挂载之前等待几秒钟的分离作业可能会解决问题,但是systemd似乎竭尽全力防止这种情况-它仍然以某种方式等待分离作业完成之前继续。 也许让udev脚本使udisks2发痒是正确的方法?我很茫然,所以任何建议都将不胜感激。

3
为CentOS 7上的systemd启动的进程增加nproc
我已经成功为本地用户增加了nofile和nproc值,但是我找不到针对systemd启动的进程的适当解决方案。将max_open_files添加到MariaDB配置无济于事。su-手动更改限制的mysql也不起作用(该帐户当前不可用)。 /etc/security/limits.conf * soft nofile 102400 * hard nofile 102400 * soft nproc 10240 * hard nproc 10240 /etc/security/limits.d/20-nproc.conf(目录中没有其他文件) * soft nofile 102400 * hard nofile 102400 * soft nproc 10240 * hard nproc 10240 /etc/sysctl.conf fs.file-max = 2097152 /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will …

3
修改系统单位文件而不更改上游单位文件
我已经通过安装了pimd服务apt。它带有上游systemd单元文件(/lib/systemd/system/pimd.service)。 我希望该服务由于某种原因而被终止时重新启动,因此我希望Restart = always在单元文件中添加该行。 但是,我不想修改上游单元文件。 有什么解决方法吗?
24 systemd 

4
服务启动请求重复太快,拒绝启动限制
我有一个显示以下错误的systemd服务 service start request repeated too quickly, refusing to start 我了解该服务已配置为在失败时重新启动,并且一次又一次地重新启动。但是到底什么时候拒绝重启?有没有定义它的限制或数字? 而且,这too quickly到底是什么意思,这是给定时间段内重新启动次数的限制吗?
23 linux  systemd 

2
如何查看较旧的journalctl日志(也许轮换之后?)
我在ubuntu 16.04上运行docker,想查看日志。但是,在我猜测是某种旋转或日志增长到一定大小之后,我无法查看日志。 我尚未对journald.conf进行任何更改,因此我在此处使用默认值。 我所看到的例子: systemctl docker status确认服务已激活since Thu 2016-10-13 18:56:28 UTC。 但是,当我运行类似的东西时,我journalctl -u docker.service --until "2016-10-13 22:00"得到的唯一输出是-- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. --我可以按预期查看该范围内的日志。 我的问题是为什么我不能使用journalctl查看较旧的日志,如何解决此问题以便查看日志?

3
您如何使用systemd的journalctl模式
我正在尝试使用journalctl的模式匹配SYSLOG_IDENTIFIERS。例如,我有大量标记为的消息sshd: $ journalctl -t sshd | wc -l 987 但是如果我尝试使用模式匹配来找到它们: $ journalctl -t 'ssh*' -- No Entries -- $ journalctl -t 'ssh.*' -- No Entries -- journalctl手册页说模式应该可以工作,但是我找不到关于在systemd中如何使用/定义模式的其他信息。 $ man journalctl .... -t, --identifier=SYSLOG_IDENTIFIER|PATTERN Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" …

4
配置Systemd服务以root用户访问权限运行
我在Raspbian Jessie上使用Systemd设置了一个node.js应用程序形式的服务,它正在使用自己的用户帐户。但是,我发现该服务未正确运行,因为它没有必要的权限。我安装的节点模块之一需要root访问权限。如果我使用sudo手动运行该应用程序,则一切正常。 有没有办法告诉systemd使用sudo运行服务?

2
配置越野车systemd服务以通过SIGKILL终止
背景 我被要求systemd为新服务创建脚本,该脚本foo_daemon有时会进入“不良状态”,并且不会通过SIGTERM(可能由于自定义信号处理程序而)消失。这对开发人员来说是个问题,因为他们被指示通过以下方式启动/停止/重新启动服务: systemctl start foo_daemon.service systemctl stop foo_daemon.service systemctl restart foo_daemon.service 问题 有时,由于foo_daemon进入不良状态,我们必须通过以下方式强行杀死它: systemctl kill -s KILL foo_daemon.service 题 我如何设置我的systemd脚本,foo_daemon以便每当用户尝试停止/重新启动服务时,systemd都会: 尝试正常关闭foo_daemonvia SIGTERM。 最多需要2秒foo_daemon才能完成关机/终止操作。 如果该进程仍然存在,请尝试强制关闭foo_daemonvia SIGKILL(这样我们就不会有PID被回收的风险,也不会出现针对错误PID的systemd问题SIGKILL)。我们正在测试的设备迅速产生/分叉了许多过程,因此,对于PID回收引起问题的问题很少,但确实存在。 如果实际上,我只是对PID回收抱有偏执,那么我可以接受脚本,只是SIGKILL针对进程的PID 发出脚本,而不必担心杀死回收的PID。

3
systemd:授予非特权用户更改一项特定服务的权限
我在无头的Linux机器上运行私人游戏服务器。因为我不是一个白痴,所以说服务器以其自己的非特权用户身份运行,它具有下载更新和修改世界数据库所需的最低限度访问权限。 我还创建了一个systemd单位文件,以在需要时正确启动,停止和重新启动服务器(例如,进行上述更新)。 但是,要真正打电话systemctl或service <game> start/stop/restart我仍然需要以root或有sudo能力的用户身份登录。 有没有办法告诉systemd,对于该<game>服务,gamesrv允许无特权的用户运行启动/停止/重新启动命令?
20 linux  systemd 

4
Systemd:在另一个单元真正启动后启动一个单元
在我的特殊情况下,我想remote-fs在glusterfs完全启动后再启动设备。 我的系统文件: glusterfs 目标: node04:/usr/lib/systemd/system # cat glusterfsd.service [Unit] Description=GlusterFS brick processes (stopping only) After=network.target glusterd.service [Service] Type=oneshot ExecStart=/bin/true RemainAfterExit=yes ExecStop=/bin/sh -c "/bin/killall --wait glusterfsd || /bin/true" ExecReload=/bin/sh -c "/bin/killall -HUP glusterfsd || /bin/true" [Install] WantedBy=multi-user.target remote-fs 目标: node04:/usr/lib/systemd/system # cat remote-fs.target [Unit] Description=Remote File Systems Documentation=man:systemd.special(7) Requires=glusterfsd.service After=glusterfsd.service remote-fs-pre.target …
20 nfs  glusterfs  systemd 

1
如何与另一个系统单元启动和停止?
我正在使用CoreOS安排车队的系统单位。我有两个单位(firehose.service和firehose-announce.service。我正在尝试使。firehose-announce.service和一起开始和停止firehose.service。这是用于firehose-announce.service:的单位文件。 [Unit] Description=Firehose etcd announcer BindsTo=firehose@%i.service After=firehose@%i.service Requires=firehose@%i.service [Service] EnvironmentFile=/etc/environment TimeoutStartSec=30s ExecStartPre=/bin/sh -c 'sleep 1' ExecStart=/bin/sh -c "port=$(docker inspect -f '{{range $i, $e := .NetworkSettings.Ports }}{{$p := index $e 0}}{{$p.HostPort}}{{end}}' firehose-%i); echo -n \"Adding socket $COREOS_PRIVATE_IPV4:$port/tcp to /firehose/upstream/firehose-%i\"; while netstat -lnt | grep :$port >/dev/null; do etcdctl set /firehose/upstream/firehose-%i $COREOS_PRIVATE_IPV4:$port …
20 systemd  coreos 

4
Systemd依赖关系和启动顺序
我需要指定启动顺序以启动进程。我在Fedora 18上运行389 Directory Server和Samba。如何启动网络服务,然后启动389 DS,然后启动Samba?在Fedora中是否有GUI可以对此进行管理? 我已启用Samba以开始systemctl enable smb.service。我还通过启用了389 DS systemctl enable dirsrv.target。
20 linux  fedora  systemd 

3
如何为Debian Jessie系统设置主机名?
Debian Jessie附带了systemd。设置主机名的建议是将hostnamectl用于systemd。但是,此命令在EC2上引导的Debian Jessie 映像上不起作用(甚至不显示当前主机名): sudo hostnamectl sudo: unable to resolve host ip-172-30-0-17 Failed to create bus connection: No such file or directory 所以我试图在这里继续Debian的建议。 echo "myhostname" > /etc/hostname echo "127.0.0.1 myhostname" >> /etc/hosts /etc/init.d/hostname.sh start /etc/init.d/networking force-reload 但是,注销并再次登录后,主机名不会更改。但是,它在重新启动后确实会更改,但这对我来说并不理想。 这种方法曾经在Debian Wheezy中起作用。 感谢您提供帮助,以解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.