假设我有一个程序,不停的打印当前的时间:
#!/usr/bin/bash
while true
do
echo blah $(date)
sleep 1
done
保存为a.sh后,运行:
$ chmod +x a.sh && ./a.sh
blah Mon Apr 20 22:19:39 CST 2020
blah Mon Apr 20 22:19:40 CST 2020
blah Mon Apr 20 22:19:41 CST 2020
^C
接下来在/etc/systemd/system目录下面新建一个a.service文件,内容如下:
[Service]
ExecStart=bash -c '/home/louyang/foo/systemd/a.sh'
现在可以用systemd来启动a.service了,
$ sudo systemctl start a.service
$ sudo systemctl status a.service
● a.service
Loaded: loaded (/etc/systemd/system/a.service; static; vendor preset: disabled)
Active: active (running) since Mon 2020-04-20 23:10:45 CST; 5s ago
Main PID: 9003 (a.sh)
Tasks: 2 (limit: 23868)
Memory: 1.0M
CGroup: /system.slice/a.service
├─9003 /usr/bin/bash /home/louyang/foo/systemd/a.sh
└─9021 sleep 1
Apr 20 23:10:45 localhost.localdomain systemd[1]: Started a.service.
Apr 20 23:10:45 localhost.localdomain bash[9003]: blah Mon Apr 20 23:10:45 CST 2020
Apr 20 23:10:46 localhost.localdomain bash[9003]: blah Mon Apr 20 23:10:46 CST 2020
Apr 20 23:10:47 localhost.localdomain bash[9003]: blah Mon Apr 20 23:10:47 CST 2020
Apr 20 23:10:48 localhost.localdomain bash[9003]: blah Mon Apr 20 23:10:48 CST 2020
Apr 20 23:10:49 localhost.localdomain bash[9003]: blah Mon Apr 20 23:10:49 CST 2020
Apr 20 23:10:50 localhost.localdomain bash[9003]: blah Mon Apr 20 23:10:50 CST 2020
$
通过journalctl看syslog:
$ sudo journalctl -f | grep -i blah
Apr 20 23:55:48 localhost.localdomain bash[9003]: blah Mon Apr 20 23:55:48 CST 2020
Apr 20 23:55:49 localhost.localdomain bash[9003]: blah Mon Apr 20 23:55:49 CST 2020
Apr 20 23:55:50 localhost.localdomain bash[9003]: blah Mon Apr 20 23:55:50 CST 2020
^C
参考
https://www.youtube.com/watch?v=fYQBvjYQ63Uhttps://bbs.archlinux.org/viewtopic.php?id=164580







网友评论