首页 > 系统相关 >【linux】linux设置开机自启动的几种方式

【linux】linux设置开机自启动的几种方式

时间:2023-05-25 14:44:06浏览次数:60  
标签:startTest etc linux 开机 init sh proxy rc 自启动

 

一.、在/etc/rc.local文件中添加自启动命令

执行命令: 编辑"/etc/rc.local",添加你想开机运行的命令

运行程序脚本:然后在文件最后一行添加要执行程序的全路径。

例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ./hello.sh "

注意:

1、你的命令应该添加在:exit 0 之前

2、要输入绝对路径

3、需要给rc.local加执行权限

 

 

 

二、在/etc/init.d目录下添加自启动脚本

linux在“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件
Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。

 

三、运行级别设置

简单的说,运行级就是操作系统当前正在运行的功能级别。

不同的运行级定义如下:
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单用户模式         进入方法#init s = init 1
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 - 没有用到
# 5 - X11 多用户图形模式(xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6 )

例:在Ubuntu/debain里,可以使用update-rc.d命令来把示例脚本:/etc/init.d/proxy安装到各个runlevel中。

update-rc.d proxy defaults 99

update-rc.d后面有三个参数,分别是/etc/init.d下的脚本名字,默认安装方式,运行的优先级。优先级的数字越大,表示越迟运行,这里我们把自己写的服务放在最后运行。

如果要卸载随机启动的服务,执行

update-rc.d -f proxy remove

在update-rc.d安装的时候提示了警告信息,是因为我们写的/etc/init.d/proxy太简陋了,只包含了我们想要的命令,连LSB的信息也没有提供。

update-rc.d: warning: /etc/init.d/proxy missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>

只需要对自启动脚本做一些小改动,就可以避免那个警告了。如下:

#!/bin/sh
### BEGIN INIT INFO
# Provides: proxy
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start or stop the HTTP Proxy.
### END INIT INFO

case "$1" in
start)
start-stop-daemon --start --background --exec /root/proxy.py
;;
stop)
start-stop-daemon --stop --name proxy.py
esac

到此,一个最简单的随机启动服务写好了,看起来文章挺长的,但其实也就几个命令而已。
在下次开机启动的时候,proxy.py就会以root用户身份被自动运行。

 

四、把脚本注册为系统服务

在/etc/init.d下新建示例脚本文件(startTest.sh),该脚本会启动/opt/test.sh。内容如下:

. /etc/init.d/functions
start() {
echo "Starting my process "
cd /opt
./test.sh
}
stop() {
killall test.sh
echo "Stoped"
}

写了脚本文件之后事情还没有完,继续完成以下几个步骤:

chmod +x startTest         #增加执行权限
chkconfig --add startTest     #把startTest添加到系统服务列表
chkconfig startTest on       #设定startTest的开关(on/off)
chkconfig --list startTest.sh   #就可以看到已经注册了startTest的服务

 

  

作者:ssooking

出处:https://www.cnblogs.com/ssooking/p/6094740.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

标签:startTest,etc,linux,开机,init,sh,proxy,rc,自启动
From: https://www.cnblogs.com/uuuuuuuuuuuuuuuu/p/17431156.html

相关文章

  • linux productuuid计算机唯一标识符查看
    目录linuxproductuuid计算机唯一标识符查看在Windows操作系统中查看ProductUUID:在macOS操作系统中查看ProductUUID:在Linux操作系统中查看ProductUUID:两台机器上的uuid可能会冲突吗linuxproductuuid计算机唯一标识符查看"ProductUUID"是指计算机的唯一标识符(UUID),它是......
  • Rocky Linux 9 x86_64 OVF (sysin)
    RockyLinux9x86_64OVF(sysin)以社区方式驱动的企业Linux请访问原文链接:https://sysin.org/blog/rocky-linux-9-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgRockyLinux9.0(5.14.0-70.13.1.el9_0.x86_64)以社区方式驱动的企业LinuxRockyLinux是......
  • linux 清空文件内容命令
    1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可。但当文件内容较大时,处理较慢,命令如下:vimfile_name:%d:wq2.使用cat命令情况,命令如下:cat/dev/null>file_name3.使用echo命令清空,此时会在文件中写入一个空行“\n",命令如下:echo"">file_name4.清空>file_name......
  • LINUX系列-命令篇
    1find命令-name名称查找-size大小查找-type类型查找f:普通文件d:目录文件l:链接文件b:块设备文件c:字符设备文件p:管道文件s:socket文件-user属性查找-iname忽略大小写查找-[cam]time(create/access/modify)时间查找-maxdepth深度查找-exec执行动作#......
  • How to change the default Python2 to Python3 on Linux All In One
    HowtochangethedefaultPython2toPython3onLinuxAllInOneRaspberryPi在Linux中如何把默认的Python2更改为Python3solutions.bashrc/.zshrcalias$sudovim.bashrc$cat.bashrc$cat.bashrc|greppy#.bashrc配置一个alias✅#Python3=......
  • 在Linux中优雅的安装MYSQL
        Mysql-8.0.27安装包位置:https://pan.baidu.com/s/1DFfDlnmCh3qVaj091qcpNA    提取码:vmny首先我们需要准备一个Linux环境,和一个MySql的安装包(本次采用的mysql安装包版本为:8.0.27)把文件放在linux下的/usr/local目录下对文件进行解压      ......
  • Linux cp命令直接覆盖不提示的方法
    今天在做项目的时候需要在linux上拷贝A项目中upload目录下所有的资源到B项目中的uoload目录下,所以我就打算使用【cp】命令拷贝过去,拷贝的时候我加了【-f】参数了,但还是一个个的询问我是否覆盖目标文件。所以今天就记录下这个问题。1、使用了【-f】还是询问的情况:cp-r-fA/uplo......
  • LINUX系列-网络篇
    一网卡配置配置文件位置:/etc/sysconfig/network-scripts/ifcfg-eth01.DEVICE=eth0网卡名字2.HWADDR=00:0c:29:90:89:d9HWADDRHardWareAddress硬件地址MAC地址3.TYPE=Ethernet网络类型。以太网4.UUID=ae779ae6-044d-43d5-a33b-48c89e8de10e#UUID做到系统中独一......
  • c++ linux download file via libcurl
    1.Installlibcurlsudoaptinstallcurlcurl-ocpplibrary.pdfhttp://www.cesarkallas.net/arquivos/livros/informatica/cpp/The%20C%2B%2B%20Standard%20Library.pdf 2.#include<chrono>#include<ctime>#include<curl/curl.h>#includ......
  • linux下查看电脑运行内存及CPU
    1、查看系统内存大小的详细信息,可以查看总内存,剩余内存、可使用内存等信息cat/proc/meminfo2、查看系统的CPU型号、类型以及大小cat/proc/cpuinfo......