我有两个需要在不同条件下运行的进程(Service1 必须从特定的 TTY 运行,而 service2 不能在该 TTY 下运行。)所以它们必须从不同的 systemd 服务运行。但我希望他们背靠背跑。所以我想用计时器触发 service1,但我希望在 service1 之后立即触发 service2。
有没有一种优雅的方式来实现这一目标?
服务1
[Unit]
Description=blank the cursor
[Service]
StandardInput=tty-force
StandardOutput=tty
TTYPath=/dev/tty1
Type=simple
ExecStart=tput civis > /dev/tty1
服务2
[Unit]
Description=random wallpaper change script
[Service]
SyslogIdentifier=wallpaper.sh
User=deanresin
Type=simple
ExecStart=/bin/bash /home/deanresin/scripts/wallpaper.sh
我希望 service1 在完成后触发 service2。
Arch Linux wiki 曾经建议在 certbot renew 之后触发 HTTP 服务器的重新加载:
我不会说这是“优雅的”,但添加以下内容
service1.service
可以做你想做的事情:您可以从 service1 获得这种关系,也可以从 service2 获得这种关系。
在服务中实现它1
从 service2 实现它
源 systemd 单元手册: https ://www.freedesktop.org/software/systemd/man/systemd.unit.html