ubuntu 设置脚本开机自启动

Ubuntu 18.04的改动还是比较大,很多之前版本 Ubuntu上简单易用的一些功能都被砍了,比如设置 rc.local 自动启动脚本的功能。之前的 Ubuntu上只需要把想要自动启动的脚本放到 /etc/rc.local 这个文件,就可以开机启动了,但是 Ubuntu 18.04 这样做已经不行了,因为 rc-local.service 这个 systemd service 已经默认不启用了。所以我们所需要做的就是重新启用 rc-local.service,然后就可以像之前一样简单的设置开机自动启动脚本了。

一、创建 rc-local.service 配置文件

这个配置文件默认在 /lib/systemd/system/ 这个目录下,我们只需将它拷贝到对应目录:

cp /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

然后编辑这个文件:

vim /etc/systemd/system/rc-local.service

在最后加上这些内容:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

修改后的 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]  
WantedBy=multi-user.target 
Alias=rc-local.service

二、创建 rc.local 文件

配置完成后,还需要创建一个 rc.local 文件:

sudo vim /etc/rc.local

在这个文件里写入我们想要开机自动启动的命令即可。

然后给这个文件加上执行权限:

sudo chmod +x /etc/rc.local

至此,就已经完成了 rc.local 的配置,重启之后会自动启动对应想启动的脚本。

如果发现没有生效,可以尝试:

sudo systemctl enable rc-local

接着启动这个服务并查看它的状态

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

命令输出如下

● rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/rc-local.service.d
           └─debian.conf
   Active: active (running) since Thu 2018-11-01 13:17:08 CST; 2s ago
     Docs: man:systemd-rc-local-generator(8)
  Process: 10810 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/rc-local.service
           └─10811 /usr/bin/python /usr/bin/sslocal -c /home/xugaoxiang/Tools/ss/ss.json

11月 01 13:17:08 ubuntu systemd[1]: Starting /etc/rc.local Compatibility...
11月 01 13:17:08 ubuntu systemd[1]: Started /etc/rc.local Compatibility.
11月 01 13:17:08 ubuntu rc.local[10810]: INFO: loading config from /home/xugaoxiang/Tools/ss/ss.json
11月 01 13:17:08 ubuntu rc.local[10810]: 2018-11-01 13:17:08 INFO     loading libcrypto from libcrypto.so.1.1
11月 01 13:17:08 ubuntu rc.local[10810]: 2018-11-01 13:17:08 INFO     starting local at 127.0.0.1:1080

可以看到rc.local中的脚本已经被正确执行了。

你可能感兴趣的:(ubuntu 设置脚本开机自启动)