在虚拟机(Centos 6)上安装nagios时遇到了问题我遵循http://www.tecmint.com/install-nagios-in-linux/中描述的步骤,一切正常 [root@tecmint ]# service nagios start 尝试启动nagios后,我只有这样: [root@Cogythos nagios]# service nagios start 启动nagios(通过systemctl): 没有更多的事情发生。 服务状态: [root@Cogythos nagios]# service nagios status -l nagios.service – LSB: start and stop Nagios monitoring server Loaded: loaded (/etc/rc.d/init.d/nagios) Active: activating (start) since śro 2015-11-04 17:44:43 CET; 3min 57s ago Process: 26524 ExecStart=/etc/rc.d/init.d/nagios start (code=exited, status=0/SUCCESS) CGroup: /system.slice/nagios.service ├─26645 /usr/local/nagios/bin/nagios […]
当设置私人临时目录时,我遇到了一些恼人的问题。 每当服务(在这种情况下,php-fpm)停止时,临时目录被清除。 不像我想要的那样,因为PHP希望至less能够find/tmp/sessions和/tmp/uploads 。 目前,我有一个脚本“引导”这些目录的创build和权限,所以如果我重新启动php-fpm ,我可以在jiff中重新创build它们。 然而,这个“目录创build”脚本毕竟不能解决我的问题。 写入这些文件夹时,PHP抱怨“权限被拒绝”。 即使权限设置为开放。 如果我手动创build/tmp/test ,PHP不能写入该目录。 如果我在php-fpm过程中(例如,通过HTTP请求)创build目录,那么PHP会突然写到那里。 这是有道理的,私人临时目录(php-fpm)的所有者是可以在那里执行CRUD操作的人。 那么怎么能真正“引导”一个私人的临时目录呢? 如果目录是由systemd本身创build的,或者是php-fpm在第一次启动时创build的,但是我还没有find这样做的方法。 我最后的select是把私人临时目录,但这是我不想做的事情。 有什么想法吗?
一个服务死了,我只知道有什么东西被打破了。 我敢肯定,自从带来systemd的Debian 8升级以来,这种情况已经发生了,尽pipe我并不完全确定systemd是应该受到指责的。 我不确定之前的init是否刚刚重新启动了死机,而systemd没有启动。 他们的症状是systemctl status foo.service显示像active(exited)之类的东西。 有没有办法注意到系统pipe理服务中状态的改变? 和/或让它尝试重新启动几次? (我是systemd新手。) 编辑 这是一个例子:Stunnel已经停止了。 这是我做了什么让它再次工作: root@server:/root# systemctl status stunnel4 ● stunnel4.service – LSB: Start or stop stunnel 4.x (SSL tunnel for network daemons) Loaded: loaded (/etc/init.d/stunnel4) Active: active (exited) since Sun 2016-05-01 07:03:54 BST; 2 days ago Process: 13443 ExecStop=/etc/init.d/stunnel4 stop (code=exited, status=0/SUCCESS) Process: 13455 ExecStart=/etc/init.d/stunnel4 start […]
我如何创build一个selinux策略来pipe理我的systemd单元? 我正在创build一个将由systemdpipe理的守护进程,我想创build一个适当的selinux策略来处理它。 我已经尝试通过手动或通过sepolicy generate等工具创build自己的策略。 但是这个过程永远不会从init_t转换出来。 我也使用systemd策略模板,但我找不到任何好的例子。 我觉得我一定会错过一些基本的东西,但我不知道它会是什么。 sepolicy输出 policy_module(foo, 1.0.0) ######################################## # # Declarations # type foo_t; type foo_exec_t; init_daemon_domain(foo_t, foo_exec_t) permissive foo_t; ######################################## # # foo local policy # allow foo_t self:fifo_file rw_fifo_file_perms; allow foo_t self:unix_stream_socket create_stream_socket_perms; domain_use_interactive_fds(foo_t) files_read_etc_files(foo_t) miscfiles_read_localization(foo_t) ls -lZ / usr / bin / foo -rwxr-xr-x. root root unconfined_u:object_r:foo_exec_t:s0 /usr/bin/foo ps […]
最近,我从Debian Wheezy向Jessie进行了远程升级。 升级没有任何错误,但在升级之后,交换分区不再被挂载/激活。 所提到的系统是一个KVM(qemu-kvm,centos7)。 在系统启动期间,systemd尝试挂载交换分区,但由于超时而失败,并显示消息“依赖失败…” 我到目前为止所尝试的是: 执行“swapon / dev / sda2”手动工作没有任何问题 用“mkswap / dev / sda2”重新创build交换分区 仔细检查fstab条目并使用UUID 删除了fstab条目,以便systemd自动检测到它 不同的选项参数(fstab) 问德国的debian社区 – 但没有有用的回应: https ://debianforum.de/forum/viewtopic.php?f = 32&t = 159902&p = 1084179#p1084179 用systemd(systemctl start dev-disk …)手动安装失败,出现同样的错误, 但是在执行完“swapon”和“swapoff”之后就可以工作了。 我到目前为止发现的: 实际上,有一个封闭的票据,很好地描述了我的问题: https: //bugs.debian.org/cgi-bin/bugreport.cgi ? bug = 764539 – 但是,问题是由于自定义内核(缺less选项) – 我不使用任何自定义内核,所以提到的选项被启用 有一个服务器故障线程,用户描述一个类似的问题,但有一个其他的系统和设置,没有任何响应: 交换分区没有安装在启动 附加信息: journalctl -r | grep“dev-disk” Mar […]
当我有一个监听特定IPv6地址的服务时,它在启动时失败,声称地址仍然不可用。 每个正在侦听特定地址的服务都会发生这种情况。 为了避免这种情况,我为服务创build了一个After=… network.target通过After=… network-online.target更改After=… network.target ,这样可以解决IPv4地址绑定问题,而不是IPv6。 我尝试了一些接口的特定目标没有成功,他们等待IPv6的IPv4位号为止。 作为解决方法,我也添加到服务部分: [Service] Restart=on-failure RestartSec=10s StartLimitInterval=1min 这似乎是大家都在解决这个问题,但是我对此并不满意,似乎是允许systemd等待IPv6地址的一种方法。 我的系统是CentOS 7.2 ,禁用了NetworkManager和firewalld,启用了networking和iptables,使用静态IP,所有networking在接口充满IPv4 / IPv6后正在工作IN / OUT。 我的ifcfg-eth0: DEVICE=eth0 BOOTPROTO=none NM_CONTROLLED="no" ONBOOT=yes IPADDR=XXXX PREFIX=24 GATEWAY=XXXX DNS1=XXXX DNS2=8.8.8.8 SEARCH=xxx.xxx IPV6INIT=yes IPV6_AUTOCONF=no IPV6ADDR="X:X:X:X::X" 我也注意到在一些双栈IPv4 / IPv6部署的系统中,IPv6需要一些时间来初始化静态地址,这是由路由设置以及其他一些新的IPv6内容引起的。 所以我的问题是,如何确保服务单元只在将IPv6链路全局分配给接口后启动? 编辑:经过一些评论指向我的爸爸,我认为systemd-networkd已合并DAD等待,但只在主分支,不存在系统220(Centos 7.2有systemd 219)。 NetworkManager似乎有一些补丁,但我没有使用任何。 我在阅读后发现了可接受的时间解决scheme,并进行了一些testing,对于我的情况,在服务器上的IP是固定的,不能分配另一个,这篇文章告诉我解决scheme: https://www.agwa.name/blog/post/beware_the_ipv6_dad_race_condition 我还基于乐观的DAD RFC4429testing了评论的DAD解决scheme,这并不能解决我的绑定问题。 最后在界面上禁用DAD,服务正常启动。 :d。 net.ipv6.conf.eth0.accept_dad = 0 随着IPv6的发展,我会把目光投向这个引导DAD的问题。 我只看到这个服务绑定到特定的IPv6地址。
我有兴趣设置一个临时目录,该目录在.service单元运行期间存在 – 与PrivateTmp=指令完全相同,但是由systemd .mount单元指定的自定义挂载点。 这可能吗? 还是应该通过服务文件本身内的ExecStartPre=指令挂载到挂载点?
我有定时器A ,每隔几个小时运行一个脚本,运行服务B (脚本systemctl start它)。 然后我想在B完成后运行服务C 这是我的服务C : [Unit] Description=lorem ipsum Requires=B.service After=B.service [Service] Type=oneshot ExecStart=echo B也是Type = oneshot。 问题:在调用systemctl start B.service , C不会自动启动。 我没有[Install]部分,因为我不希望它们在启动时启动。
在托pipe一个nginx的Arch linux机器上我想自动更新它的LetsEncrypt证书。 我为此写了一个.service和.timer: #letsencrypt-update.service [Unit] Description=LetsEncrypt Update Service [Service] Type=oneshot ExecStart=/usr/bin/letsencrypt renew –quiet #letsencrypt-update.timer [Unit] Description=LetsEncrypt Update Timer [Timer] OnCalendar=03,21:22 Persistent=true [Install] WantedBy=basic.target 根据每个certbot文档 ,LetsEncrypt更新应该每天运行两次,每个systemd.time文档应该可以在03:22和21:22运行服务,用逗号分隔小时,但是当我重新启用计时器时, systemctl list-timers下一个执行是在03:22而不是21:22(这里是10点)。 这是为什么? systemd是否必须在执行21:22之前运行03:22定时器?
以systemd-cgls的层次结构为例: └─user.slice ├─user-1000.slice │ ├─[email protected] │ │ └─init.scope │ │ ├─3262 /lib/systemd/systemd –user │ │ └─3263 (sd-pam) │ └─session-3.scope │ ├─3260 sshd: user1 [priv] │ ├─3362 sshd: user1@pts/1 │ ├─3363 -bash │ └─3378 ssh-agent -s └─user-0.slice ├─session-1.scope │ ├─3151 sshd: root@pts/0 │ ├─3252 -bash │ ├─3625 systemd-cgls 如果我设置了user.slice的限制,例如5M的内存,Memory行清楚地报告它: systemctl status user.slice ● user.slice Loaded: loaded […]