Ubuntu18.04不再使用initd管理系统,改用systemd,为了像以前一样,在/etc/rc.local中设置开机启动程序,需要以下几步:
1、systemd默认读取/etc/systemd/system下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。一般系统安装完/lib/systemd/system/下会有rc-local.service文件,即我们需要的配置文件。
创建软链接:
1 |
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service |
1 2 |
cd /etc/systemd/system/ cat rc-local.service |
rc-local.service内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# SPDX-License-Identifier: LGPL-2.1+ # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # This unit gets pulled automatically into multi-user.target by # systemd-rc-local-generator if /etc/rc.local is executable. [Unit] Description=/etc/rc.local Compatibility Documentation=man:systemd-rc-local-generator(8) ConditionFileIsExecutable=/etc/rc.local After=network.target [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 RemainAfterExit=yes GuessMainPID=no [Install] WantedBy=multi-user.target Alias=rc-local.service |
区块解释:
[Unit]:启动顺序与依赖关系。
[Service]:启动行为,如何启动,启动类型。
[Install] :定义如何安装这个配置文件,即怎样做到开机启动。
2、创建/etc/rc.local文件,赋可执行权限
1 2 |
sudo touch /etc/rc.local sudo chmod 755 /etc/rc.local |
3、编辑/etc/rc.local,添加需要开机启动的任务
1 2 |
#!/bin/bash echo "test " > / var /test.log |
4、重启系统,然后查看test.log