注意:rc.local脚本里面启动的用户默认为root权限。

一、rc.local脚本

rc.local脚本是一个Ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。

该脚本具体格式如下:

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

exit 0

注意:一定要将命令添加在exit 0之前。里面可以直接写命令或者执行Shell脚本文件sh。

二、关于放在rc.local里面时不启动的问题:

1、可以先增加日志输出功能,来查看最终为什么这个脚本不启动的原因,这个是Memcached启动时的样例文件:

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

#log

exec 2> /tmp/rc.local.log # send stderr from rc.local to a log file

exec 1>&2 # send stdout to the same log file

set -x #tell sh to display commands before execution

#Memcached

/usr/local/memcache/bin/memcached -p 11211 -m 64m -d -u rootexit 0

2、rc.local文件头部/bin/sh修改为/bin/bash

3、如果是执行sh文件,那么要赋予执行权限sudo chmod +x xxx.sh,然后启动时加上sudo sh xxx.sh

三、 update-rc.d增加开机启动服务

给Ubuntu添加一个开机启动脚本,操作如下:

1、新建个脚本文件new_service.sh

#!/bin/bash

# command content

exit 0

2、设置权限

sudo chmod 755 new_service.sh

#或者

sudo chmod +x new_service.sh

3、把脚本放置到启动目录下

sudo mv new_service.sh /etc/init.d/

4、将脚本添加到启动脚本

执行如下指令,在这里90表明一个优先级,越高表示执行的越晚

cd /etc/init.d/

sudo update-rc.d new_service.sh defaults 90

5、移除Ubuntu开机脚本

sudo update-rc.d -f new_service.sh remove

6、通过sysv-rc-conf来管理上面启动服务的启动级别等,还是开机不启动

sudo sysv-rc-conf

7、update-rc.d的详细参数

使用update-rc.d命令需要指定脚本名称和一些参数,它的格式看起来是这样的(需要在root 权限下):

update-rc.d [-n] [-f] remove

update-rc.d [-n] defaults

update-rc.d [-n] disable|enable [S|2|3|4|5]

update-rc.d start|stop

-n: not really

-f: force

其中:

disable|enable:代表脚本还在/etc/init.d中,并设置当前状态是手动启动还是自动启动。

start|stop:代表脚本还在/etc/init.d中,开机,并设置当前状态是开始运行还是停止运行。(启用后可配置开始运行与否)

NN:是一个决定启动顺序的两位数字值。(例如90大于80,因此80对应的脚本先启动或先停止)

runlevels:则指定了运行级别。

实例:

(1)、添加一个新的启动脚本sample_init_script,并且指定为默认启动顺序、默认运行级别(还记得前面说的吗,首先要有实际的文件存在于/etc/init.d,即若文件/etc/init.d/sample_init_script不存在,则该命令不会执行):

update-rc.d sample_init_script defaults

上一条命令等效于(中间是一个英文句点符号):

update-rc.d sample_init_script start 20 2 3 4 5 . stop 20 0 1 6

(2)、安装一个启动脚本sample_init_script,指定默认运行级别,但启动顺序为50:

update-rc.d sample_init_script defaults 50

(3)、安装两个启动脚本A、B,让A先于B启动,后于B停止:

update-rc.d A 10 40

update-rc.d B 20 30

(4)、删除一个启动脚本sample_init_script,如果脚本不存在则直接跳过:

update-rc.d -f sample_init_script remove

这一条命令实际上做的就是一一删除所有位于/etc/rcX.d目录下指向/etc/init.d中sample_init_script的链接(可能存在多个链接文件),update-rc.d只不过简化了这一步骤。

(5)禁止Apache/MySQL相关组件开机自启:

update-rc.d -f apache2 remove

update-rc.d -f mysql remove

8、服务的启动停止状态

#通过service,比如

sudo service xxx status

sudo service xxx start

sudo service xxx stop

sudo service xxx restart

9、查看全部服务列表

sudo service --status-all

ubuntu 设置开机执行脚本_Ubuntu 16.04设置rc.local开机启动命令/脚本的方法相关推荐

  1. ubuntu不支持安装搜狗_Ubuntu 16.04安装搜狗拼音输入法错误问题的解决方法

    一.环境介绍 Ubuntu 16.04 搜狗输入法: sogoupinyin_2.0.0.0078_amd64 二.问题表现 sudo dpkg -i sogoupinyin_2.0.0.0078_a ...

  2. ubuntu 网卡双网口 配置_Ubuntu 18.04 设置多网卡多端口聚合

    多网卡聚合把多个网络端口绑定到一个IP地址,可以提高网络总带宽和容错能力. Ubuntu 18.04使用了netplan来管理网络,跟以前版本差别很大.以前版本修改/etc/network/inter ...

  3. Ubuntu 16.04设置rc.local开机启动命令/脚本的方法

    Ubuntu 16.04设置rc.local开机启动命令/脚本的方法(通过update-rc.d管理Ubuntu开机启动程序/服务) 注意:rc.local脚本里面启动的用户默认为root权限. 一. ...

  4. Ubuntu 设置开机启动命令/脚本

    Ubuntu 设置rc.local开机启动命令/脚本一般有两种方法: 方法一:rc.local脚本 rc.local脚本是一个Ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚 ...

  5. Ubuntu 16.04设置IP、网关、DNS

    from: Ubuntu 16.04设置IP.网关.DNS 说明:在网上给的教程上面通常会有这样的一个误导思路,按照配置文件设置后会不生效的问题,甚至没有一点效果,经过排查发现Linux下设置IP这个 ...

  6. Ubuntu 16.04 设置终端背景透明化

    Ubuntu 16.04 设置终端背景透明化与12,14等略有些不同.因为,你可能找不到设置的地方. 步骤: (1)Ctrl + Alt + T 打开终端. (2)顶部状态栏 -> 编辑(E)- ...

  7. lubuntu输入法设置_Ubuntu 18.04 16.04 设置输入法切换方法 中文输入法

    Ubuntu 18.04 16.04 设置输入法切换方法 中文输入法 发布时间:2018-08-23 11:30, 浏览次数:2644 , 标签: Ubuntu 新装的unbunu 18.04 16. ...

  8. Ubuntu 16.04 设置菜单栏位置

    个人博客原文:Ubuntu 16.04 设置菜单栏位置 摘要:本文讲述在 Ubuntu 16.04 中如何设置菜单栏在桌面的下边或者左边. 设置在下边 gsettings set com.canoni ...

  9. ubuntu一键更换内核 安装锐速 - 16.04 14.04可用

    原文链接:https://www.jianshu.com/p/19ab389820ef ubuntu一键更换内核 安装锐速 - 16.04 14.04可用 最近发现还是锐速加速效果明显 这里给一个自动 ...

最新文章

  1. Spring Boot 2.0 热部署指南
  2. CentOS 6.4下安装中文输入法
  3. java批量转换图片格式
  4. 33:计算分数加减表达式的值
  5. java mvc页面传值方式_详解SpringMVC的ModelAndView传值方法
  6. request 和require区别_JAVA WEB开发中涉及到的get和post请求,他们的区别
  7. NoSQL数据库之国产开源产品:SequoiaDB 分析前言
  8. python 字符串替换_python字符串替换的2种方法
  9. layerdate时间控件不随着input框的滚动移动
  10. 人工智能轨道交通行业周刊-第9期(2022.8.8-8.14)
  11. 检测视频中的人脸,并画出矩形框
  12. GAN中的Spectral Normalization
  13. 关于调用第三方sdk
  14. erick recommendation:慕容晓晓《爱情买卖》MV欣赏
  15. python随机生成邮箱、自我介绍、地址、时间等
  16. 深度学习基础知识每日更 upupup
  17. 二叉树的递归遍历及非递归遍历
  18. Linux系统中的时间设置(硬件时钟VS系统时钟)
  19. Qt之QWizard向导界面
  20. hfss和python_利用Python与HFSS联合仿真设计一个微带天线!

热门文章

  1. python OCR 图形识别
  2. (算法)宝石升级问题
  3. 深入浅出:Microsoft分布式事务处理协调器
  4. 什么是社会性网络?什么是六度分隔理论?
  5. java后端面试笔记-自用
  6. python实现栈的操作入站出站查找元素等_Python实现的栈(Stack)
  7. php读取某类型文件代码,php代码实现读取文件头判断文件类型
  8. jmeter file upload 变量_通达OA上传漏洞之变量覆盖分析
  9. canvas 实现图片局部模糊_小技巧!H5使用Html2Canvas实现自动截屏(下)
  10. Python 的垃圾回收回收机制(源码)