【linux 】添加开机启动项的方法|Linux目录结构和存放哪些文件

目录

linux 添加开机启动项的方法​​​​​​​

编辑文件 /etc/rc.local

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

每次登录自动执行

通过chkconfig命令设置

把脚本注册为系统服务

在crontab中设置(没试过)

Linux目录结构和存放哪些文件


linux 添加开机启动项的方法

编辑文件 /etc/rc.local

/etc/rc.d/rc.local(和/etc/rc.local是同一个文件

输入命令:vim /etc/rc.local 将出现类似如下的文本片段:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/mysqld start #mysql开机启动
/etc/init.d/nginx start #nginx开机启动
/etc/init.d/php-fpm start #php-fpm开机启动
/etc/init.d/memcached start #memcache开机启动

#在文件末尾(exit 0之前)加上你开机需要启动的程序或执行的命令即可(执行的程序需要写绝对路径,添加到系统环境变量的除外),如:

/usr/local/thttpd/sbin/thttpd  -C /usr/local/thttpd/etc/thttpd.conf
 

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

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

每次登录自动执行

自己写一个shell脚本

将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。

也可以设置每次登录自动执行脚本,在/etc/profile.d/目录下新建sh脚本, 
/etc/profile会遍历/etc/profile.d/*.sh

另外,几个脚本的区别: 
(1) /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

(2) /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。

(3) ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。

(4) ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

(5) ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是”父子”关系。

(6) ~/.bash_profile: 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
--------------------- 

原文:https://blog.csdn.net/qq_35440678/article/details/80489102 
 

通过chkconfig命令设置

将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下

vim 启动文件,文件前面务必添加如下三行代码,否侧会提示chkconfig不支持

#!/bin/sh 告诉系统使用的shell,所以的shell脚本都是这样
#chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#description: http server(自己随便发挥)//两行都注释掉!!!,此行代码必须

chkconfig --add 脚本文件名 操作后就已经添加了

把脚本注册为系统服务

在/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的服务

在crontab中设置(没试过)

参考:

linux设置开机自启动脚本的最佳方式_yinnnnnnn的博客-CSDN博客_linux开机自启动脚本

/etc/crontab文件和crontab -e命令区别 - 茄子_2008 - 博客园

linux设置开机自启动 - ssooking - 博客园

Linux目录结构和存放哪些文件

Linux一般相应的文件都会会放在相应的目录下。这样更有利于文件的查找
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/root 系统管理员的主目录
Linux下其他其他目录的用途如下:
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin 超级管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公共的临时文件存储点
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统
/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录

其实linux与windows分区是一样的,都有主分区、扩展分区、逻辑分区,只是他们的目录结构不一样,所以导致表现形式也不一样。
winodws是森林型目录结构,它有很多根,如C、D、E、F等都是它的根目录,然后在其实创建子目录
linux是树型目录结构,它只有一个根就是/目录,然后在/目录在有子目录如/root、/home、/etc/、/bin等。你可以将/root、/home这些子目录单独挂载到一个分区上,如扩展分区、逻辑分区上。而不是以C、D、E分区的形式表现出来。

不可以将linux像Winodws一样分为C、D、E、F盘。
以后你用习惯了就好了的。

posted on 2022-10-04 01:28  bdy  阅读(1228)  评论(0编辑  收藏  举报

导航