我正在阅读文档,但我仍然不清楚是否可以完成以下操作:
中定义的服务~/.config/systemd/user/task.service
依赖于系统sleep.target
(~/.config/systemd/user/sleep.target.wants/task.service
)。
现在我希望task.service
在我运行时启动$ systemctl suspend
,但是task.service
没有启动。
我正在运行 debian,使用 systemd 版本 208,systemd --user
配置或多或少如ArchWiki 所述。
我不知道是否我的情况可能与systemd在所有来实现,或者是--system
和--user
设计完全隔离,使--user
单元可能不是一个的依赖--system
单位。
如果可能,我的情况可能有什么问题?
根据我拼凑的各种来源~/.config/systemd/user/screenlock.service
:
[Unit]
Description=Lock X session
Before=sleep.target
[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/xautolock -locknow
[Install]
WantedBy=sleep.target
Run Code Online (Sandbox Code Playgroud)
我已经使用systemctl --user enable screenlock.service
. 但是在重新启动、登录、暂停和恢复(systemctl suspend
通过关闭盖子进行测试)后,屏幕没有锁定,并且journalctl --user-unit screenlock.service
. 我究竟做错了什么?
运行DISPLAY=:0 /usr/bin/xautolock -locknow
会按预期锁定屏幕。
$ systemctl --version
systemd 215
+PAM -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP -APPARMOR
$ awesome --version
awesome v3.5.5 (Kansas City Shuffle)
• Build: Apr 11 2014 09:36:33 for x86_64 by gcc version 4.8.2 (nobody@)
• Compiled against Lua 5.2.3 (running with Lua …
Run Code Online (Sandbox Code Playgroud) 在 CentOS7 服务器上,我有一个由 Tomcat Web 服务器和 MySQL DB 服务器组成的应用程序堆栈,它们都安装在同一个 VM 上。我希望他们按以下顺序一起开始和停止:
开始:MySQL--> Tomcat 停止:Tomcat--> MySQL
阅读 systemd 单元文档,我设法让它们与Requires=
指令一起启动,但是当我使用 systemctl stop tomcat.service 停止 tomcat 时,MySQL 继续运行。在系统日志中,我注意到它甚至没有尝试停止 MySQL,所以 systemd 单元一定有问题。
这是我的单位:
# 用于 tomcat 的 Systemd 单元文件 [单元] 描述=Apache Tomcat Web 应用程序容器 After=syslog.target network.target mysql.service 需要=mysql.service [服务] 类型=分叉 环境=JAVA_HOME=/opt/jdk 环境=CATALINA_PID=/opt/tomcat/temp/tomcat.pid 环境=CATALINA_HOME=/opt/tomcat 环境=CATALINA_BASE=/opt/tomcat ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/bin/kill -15 $MAINPID 用户=tomcat 组=tomcat [安装] WantedBy=multi-user.target