ubuntu
Windows&Linux下设置ngrok开机自启动
Deno 1.0
解决:关于docker闪退的问题
Windows 上的 Docker 引擎
文档管理 - 个人中心
Windows 10 安装 MySQL 8.0 指南
给Django添加Google Adsense 要求的ads.txt
docker命令
如何回滚WordPress插件(初学者版本控制) | ItBook
在Ubuntu 18.04上安装PHP 7.4
docker命令行
在PHP 7.3,Nginx,Apache,使用加密SSL,Cloud SQL(MySQL 5.7)的Google Cloud Platform上,将具有Nginx反向代理的WordPress安装到Ubuntu 18.04的Apache到Apache。
How to install mcrypt PHP module on Ubuntu 18.04 Linux
DjangoCMS手动安装
搭建Git服务器
Ubuntu Server 18.04 LTS 开机自动启动脚本 SVN自动启动 rc.local
通过禁用信号进行更快的DJANGO测试
gitBook的发布流程
ubuntu 18.04 怎么设置字体样式,调整字体大小
iptables过滤URL目标请求的小技巧
rsync复制文件的一些注意事项
如何设置crontab的时区?
本文档使用 MrDoc 发布
-
+
首页
Ubuntu Server 18.04 LTS 开机自动启动脚本 SVN自动启动 rc.local
最新的稳定版Ubuntu Server 18.04,发现以前开机自启的方法失效了,Ubuntu 18 相比以往的几个版本改动较大,不再使用initd管理系统,而是使用systemd,要像以前使用rc.local需要做一些修改。 查阅网上的一些教程发现没有正常启动,最后发现是缺少一些启动命令。 注:下文所使用编辑器是Vim,如果需要使用其他编辑器请自行更换命令中的vim 如果有排版不清等问题欢迎前往我的博客阅读: ubuntu 18.04 server 开机自动启动脚本 svn ngrok 自动启动 rc.local 修改rc.local.service systemd 默认读取 /etc/systemd/system 下的文件,该目录下的文件会链接/lib/systemd/system/下的文件。 执行 ls /lib/systemd/system 你可以看到有很多启动脚本,其中就有我们需要的 rc.local.service 想要深入了解Linux的init进程和systemd可以参考下面的博客: Systemd 入门教程 首先修改rc.local.service sudo vim /lib/systemd/system/rc.local.service 在最后加入[Install]内容: [Install] WantedBy=multi-user.target Alias=rc-local.service 修改完成后的文件如下: [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] 段: 定义如何安装这个配置文件,即怎样做到开机启动; 可以看出,/etc/rc.local 的启动顺序是在网络后面,但是显然它少了 Install 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上 [Install] 段。 创建rc.local脚本 注意到 Ubuntu 18.04 默认没有/etc/rc.local这个文件,需要自己创建: sudo vim /etc/rc.local 向其中写入: #!/bin/bash svnserve -d -r /home/svn/repository/ /home/ngrok -log=/home/ngrok.log -config=/home/ngrok.cfg start ssh # 这里还可以加入其它想要自启的命令 echo "this is a test" > /usr/local/text.log 可以看到,第一行是表明这是一个bash文件; 中间两行是我们的自启命令,这里是自动启动SVN和ngrok(和我们平时的启动命令一样); 最后是一个测试输出日志(可以省略),开机后打开/usr/local/text.log就知道有没有成功自启。 创建软链接 前面我们说 systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接 ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/ systemctl 启动 问题研究并解决 之前按照相关教程没有顺利自启,在论坛中找到一个命令使用后成功,可能是将服务告知系统自启的命令。 systemctl enable rc-local 后来又发现: Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。 systemctl enable命令用于在上面两个目录之间,建立符号链接关系。 sudo systemctl enable rc-local # 等同于 sudo ln -s '/usr/lib/systemd/system/rc-local' '/etc/systemd/system/multi-user.target.wants/rc-local' 如果配置文件里面设置了开机启动,systemctl enable命令相当于激活开机启动。 与之对应的,systemctl disable命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。 sudo systemctl disable rc-local 所以说之前问题可能出现在上一步软链接创建失败,或者说光创建链接未激活开机启动。 到此,执行reboot命令重新启动主机,发现相关服务已经成功启动了。
老糊糊
2020年6月11日 12:36
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码