Contents

如果要使用systemd来实现开机自启动,一般将后缀为.serviceunit configuration file放置在/etc/systemd/system/下。
如果只是简单地运行一个shell脚本:

1
2
3
4
5
6
7
8
9
[Unit]
Description=run shell script
[Service]
Type=oneshot
ExecStart=/usr/bin/yourscript
[Install]
WantedBy=multi-user.target

如果还需要关闭的话,则需要加一行ExecStop,并相应修改:
(yourscript脚本接受两种参数并执行不同操作)

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/yourscript start
ExecStop=/usr/bin/yourscript stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

当然也可以用简单地shell命令来代替unit configuration file规则

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/switch"
ExecStop=/bin/sh -c "echo ON > /whatever/switch"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

.service文件编写好之后,可以使用

1
systemctl enable yourservice.service

来启动服务。

如果.service文件有修改 ,可以需要使用systemctl daemon-reload命令重新加载。

更多的内置关键字和用法,可以参考https://wiki.ubuntu.com/SystemdForUpstartUsers

Contents