Ubuntu升级到了20.04之后,默认的rc.local是不启动的,这也就导致了,我配置的一些自定义的脚本是没有办法在开机的时候就自动启动了。
rc-local.service默认内容如下
# 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,所以在如上的脚本上增加【Install】,下面是增加完【install】的全量脚本
# 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
根据上面代码中ExecStart
,我们编辑/etc/rc.local
脚本
#!/bin/sh iptables-restore < /etc/iptables.up.rules exit 0
这里一定要有exit
的退出,否则会报错的。
然后把rc-local.service
设置为开机启动
systemctl start rc-local # 启动 systemctl restart rc-local # 重启 systemctl status rc-local # 查看状态,如果是active就表示没问题了
暂无评论