我知道如何使systemd服务使用诸如BindsTo,Require和PartOf之类的东西需要另一个服务。 我也读过很多关于类似情况的文章。 然而,我有一个更独特的用例,似乎没有直接的解决scheme,或者至less不是我发现的工作。 我有一个服务,“serviceA”,同时运行几个进程。 它作为特定的User = MyUser运行。 其中一个被启动的东西是一个需要使用sudo的安装脚本。 这个脚本被脚本调用时(不是手动运行时),所以我把脚本移出了一个单独的服务“serviceB”。 我不想在“serviceA”服务中包含对“serviceB”的任何引用,原因有多种。 是否有可能通过serviceB中的某个选项具有serviceA触发器serviceB? 我已经尝试过partOF,BindsTo,Before = etc …但是没有任何东西似乎有效果。 ServiceB不启动。 我假设没有办法触发其他服务,除非它在主要服务中列出。 我也没有看到关于通过journalctl以这种方式启动serviceB失败的输出,也没有看到任何比尝试运行脚本作为主要服务的一部分的错误代码更多的东西。 我目前的解决scheme是使用serviceA的一个插件,它有效地修改了服务,要求ServiceB首先启动。 它工作,但不是我最喜欢的机制。 或者,有什么方法可以解释为什么sudo命令无法在第一时间运行? (我已经尝试了完整的path,sudoers设置,等等…) serviceA.service: [Unit] Description= Service A that I don't want to modify [Service] ExecStart=/bin/bash -c 'mybinary' #calls other binaries and scripts. Restart=always User=MyUser Group=Mygroup serviceB.service: [Unit] Description= Service B that I don't mind modifying […]
正如标题所解释的,我在nfs-kernel-server的Ubuntu 16.04上遇到了问题。 该进程根据systemd启动,但没有错误,但将没有分配的CPU或内存。 只有在第一次启动时才会发生这种情况,一旦服务器在线,手动重新启动就可以了。 如果这是一种系统启动依赖问题,我怎么会发现没有日志出了什么问题? » service nfs-kernel-server status ● nfs-server.service – NFS server and services Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2017-08-09 11:44:02 UTC; 10h ago Process: 5841 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS) Process: 5826 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) Main PID: 5841 (code=exited, status=0/SUCCESS) Tasks: 0 Memory: 0B CPU: […]
在CentOS 7上使用Apache的httpd和Tomcat时,我观察到一个问题。两者都运行在同一个主机上,都是从官方存储库安装的。 httpd使用mod_auth_mellon执行SAML,并在Tomcat中运行代理到后端Web应用程序。 初始状况: 这两个服务都停止了 第一个用例: systemctl启动httpd systemctl启动tomcat – >作品 第二个用例: systemctl启动tomcat systemctl启动httpd – >不起作用 错误信息: Aug 09 14:03:08 prod2.localdomain systemd[1]: Starting The Apache HTTP Server… — Subject: Unit httpd.service has begun start-up — Defined-By: systemd — Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel — — Unit httpd.service has begun starting up. Aug 09 14:03:09 prod2.localdomain systemd[1]: httpd.service: main process […]
是否有一个systemctl命令来启动一个服务,recursion(在它之前)它需要的所有依赖关系? 我有时间了 > systemctl start service2 A dependency job for service2.service failed. See 'journalctl -xe' for details. > journalctl -xe Aug 10 09:06:21 … systemd[1]: Dependency failed for service 2 Service. — Subject: Unit service2.service has failed — Defined-By: systemd — Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel — — Unit service2.service has failed. — — The result is dependency. […]
我正在尝试在进行rsync远程备份的debian服务器上设置systemd计时器。 我写了一个systemd服务文件: [Unit] Description=My Backup Service [Service] ExecStart=/usr/bin/sshpass -p "mypassword" /usr/bin/rsync –log-file=/var/log/mybackup.log –rsync-path=/bin/rsync -avE –delete /var/www/* [email protected]:/mybackup [Install] WantedBy=default.target 当我启动服务时,出现以下错误: Aug 13 23:21:44 debian systemd[1]: Started Backup Service. Aug 13 23:21:44 debian sshpass[12564]: Unexpected remote arg: [email protected]:/mybackup Aug 13 23:21:44 debian sshpass[12564]: rsync error: syntax or usage error (code 1) at main.c(1348) [sender=3.1.1] Aug 13 […]
systemd会自动从服务文件中捕获程序输出并将它们转发到systemd日志。 我怎样才能添加一个“types”字段到这些日志条目? 这甚至有可能吗?
我创build了一个自定义的服务文件,如下所示: cat /etc/systemd/system/aaa.service [Unit] Description=aaa main application After=syslog.target network-online.target [Service] Type=forking PIDFile=/usr/local/aaa_path/aaa/aaa.pid WorkingDirectory=/usr/local/aaa_path/aaa/ ExecStart=/usr/local/aaa_path/aaa/run_aaa.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target 在检查状态时: systemctl status aaa 一切看起来不错,除了: … systemd[1]: aaa.service: Supervising process 18285 which is not our child. We'll most likely not notice when it exits. 想知道为什么这个信息是显示,如果有什么需要关心的? 我的ExecStart是名为run_aaa.sh的bash脚本; 它所做的是准备一些环境variables,运行一些必需的维护脚本,最后在后台运行带有一些dynamic命令行选项的aaa二进制文件(作为守护进程) – 然后退出(run_aaa.sh脚本退出,aaa守护进程二进制文件继续在后台运行,并维护系统知道的自己的PID文件) 我知道systemd正在运行run_aaa.sh,并期望它fork(因为我指定了type = forking),它实际上是通过在后台运行“aaa”二进制守护进程并在之后退出来实现“fork”。 另外我指定了PIDFilepath,我的aaa二进制文件维护了这个PIDFile,所以为什么systemd会抱怨它可能无法监督我的守护进程? 有没有更好的方式来configuration这个用例的服务? (我必须使用run_aaa.sh脚本才能执行我的二进制文件)
我已经看到,zookeeper的开发人员有一个伟大的zkServer.sh脚本来启动,停止,重新启动等zookeeper,但我不知道为什么在这个世界上,他们决定跳过init脚本使用。 例如,使用zkServer.sh脚本无法设置zookeeper在服务器启动时运行。 所以,任何人都知道如何环绕或可用和正确的工作zookeeper初始化脚本? 这里是链接到zkServer.sh文件https://github.com/apache/zookeeper/blob/master/bin/zkServer.sh 谢谢你的帮助 这里是我的示例init脚本,我只需要一些帮助tunning #!/bin/bash # # /etc/init.d/zookeeper # # Startup script for Zookeeper # # chkconfig: 2345 80 20 # description: Starts and stops Zookeeper # pidfile: /var/run/zookeeper/zookeeper.pid ### BEGIN INIT INFO # Provides: zookeeper # Required-Start: $remote_fs $network $named $time # Required-Stop: $remote_fs $network $named $time # Should-Start: ntp mdadm # […]
我注意到我的一台服务器(Cloudlinux 7)有一些奇怪的事情。 服务器的用户非常less,stream量低。 数据库在SSD驱动器上。 服务器比其他服务器拥有更多的iowait(具有相同的参数和configuration)。 当我试图分析这个问题时 – 有一个系统的过程: /usr/lib/systemd/systemd –switched-root –system –deserialize 21 当我用htop -p 1观察它时,我注意到这个过程从驱动中读取了很多。 它达到了20MB /秒。 在另外一台服务器上,stream量更大 – 系统有时需要高达1MB / s。 有人能告诉我什么可以读? 斯特拉斯虽然很多的读物: http : //dpaste.com/088CG7C.txt
我刚刚完成了Debian升级到Stretch,结果,我们的邮件服务器(postfix / courier / saslauthd / mysql – 没有任何validation)有问题。 结果,我做了禁止,并重新启动服务器。 现在,我无法让MySQL恢复。 系统错误是刺激性的模糊,并没有太多的基础上进行search。 这是我得到的一切: $ sudo service mysql status ● mysql.service – LSB: Start and stop the mysql database server daemon Loaded: loaded (/etc/init.d/mysql; generated; vendor preset: enabled) Active: failed (Result: exit-code) since Tue 2017-08-29 19:13:26 UTC; 2min 49s ago Docs: man:systemd-sysv-generator(8) Process: 18202 ExecStop=/etc/init.d/mysql stop […]