一糯崎、系統(tǒng)環(huán)境
- 操作系統(tǒng):ubuntu 18 (該版本已默認使用systemd作為init)
- python版本:3.6
二、步驟
(一)準備python程序
1河泳、在 /usr/bin/ 下新建python程序 svc-test.py
# nano /usr/bin/svc-test.py
#! /usr/bin/python3
import time
while True:
f = open('/tmp/svc-test.log', 'a', encoding='utf8')
now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
f.write(now+'\n')
f.close()
time.sleep(2)
2沃呢、添加執(zhí)行權(quán)限
# chmod +x /usr/bin/svc-test.py
(二)向系統(tǒng)注冊服務(wù)
1、編寫注冊文件
在 /etc/systemd/system/ 下添加svc-test.service 文件
# nano /etc/systemd/system/svc-test.service
[Unit]
Description=svc-test
After=basic.service //啟動順序
[Service]
Type=oneshot
KillMode=control-group
WorkingDirectory=/tmp
ExecStart=/usr/bin/python3 /usr/bin/svc-test.py //必須使用絕對路徑
[Install]
Alias=svc-test.service
WantedBy=multi-user.target
2拆挥、添加執(zhí)行權(quán)限
# chmod + x /etc/systemd/system/svc-test.service
3薄霜、重載系統(tǒng)服務(wù)
# systemctl daemon-reload
4、將服務(wù)注冊為開機啟動
# systemctl enable svc-test.service
三纸兔、附錄--一些關(guān)于systemctl的命令
查看所有服務(wù)的狀態(tài)
# systemctl status
停止服務(wù)
# systemctl stop svc-test
手工啟動服務(wù)
# systemctl start svc-test
查看單個服務(wù)的狀態(tài)
# systemctl status svc-test
● svc-test.service - svc-test
Loaded: loaded (/etc/systemd/system/svc-test.service; enabled; vendor preset: enabled)
Active: activating (start) since Thu 2020-01-02 00:42:43 CST; 21min ago
Main PID: 574 (python3)
Tasks: 1 (limit: 4604)
CGroup: /system.slice/svc-test.service
└─574 /usr/bin/python3 /usr/bin/svc-test.py
Jan 02 00:42:43 NanoPi-M4 systemd[1]: Starting svc-test...
禁用開機啟動
# systemctl disable svc-test.service
Removed /etc/systemd/system/multi-user.target.wants/svc-test.service.