Linux配置开机启动的脚本的方法
配置开机启动脚本
方法一:修改rc.local
1、编写脚本auto_run.sh并赋予可执行权限
2、在/etc/rc.d/rc.local中添加auto_run.sh脚本,保存并reboot系统
3、重启之后查看脚本是否自动运行
注:/etc/rc.local是链接文件,指向/etc/rc.d/rc.local文件,修改了/etc/rc.d/rc.local文件后,/etc/rc.local也相应的改变了,同样,修改/etc/rc.local之后,/etc/rc.d/rc.local也会相应的改变;
方法二:直接把脚本放在相应启动级别的rcX.d目录下
1、编写脚本auto_run.sh并赋予可执行权限
2、查看系统启动级别
3、直接把脚本auto_run.sh放到/etc/rc.d/rc5.d/目录,修改文件名为S100auto_run.sh,给他一个启动序号
4、重启系统,查看脚本是否自动运行
方法三:使用update-rc.d命令
1、编写脚本auto_run.sh并赋予可执行权限
2、查看系统启动级别
3、把脚本放在/etc/init.d目录
$ update-rc.d mysql start 98 2 .
98 为启动序号,
2是系统的运行级别,可自己调整,
注意不要忘了结尾的句点。
现在我们到/etc/rc2.d 下,就多了一个S98mysql 这样的符号链接。
4. 然后启动系统,测试一下设置是否有效。
三、移除符号链接
当你需要移除这个符号连接时,方法有三种:
1. 直接到/etc/rc
2.d 下删掉相应的链接,当然不是最好的方法
2. $ update-rc.d -f s10 remove //推荐做法
3. 如果update-rc.d 命令你不熟悉,还可以试试看rcconf 这个命令,也很方便。
Linux—添加开机启动(服务脚本)
Linux—添加开机启动(服务脚本)系统启动时需要加载的配置⽂件/etc/profile、/root/.bash_profile/etc/bashrc、/root/.bashrc/etc/profile.d/*.sh、/etc/profile.d/lang.sh/etc/sysconfig/i18n、/etc/rc.local(/etc/rc.d/rc.local)⼀、修改开机启动⽂件:/etc/rc.local(或者/etc/rc.d/rc.local)# 1.编辑rc.local⽂件[root@localhost ~]# vi /etc/rc.local# 2.修改rc.local⽂件,在 exit 0前⾯加⼊以下命令。
保存并退出。
/etc/init.d/mysqld start # mysql开机启动/etc/init.d/nginx start # nginx开机启动supervisord -c /etc/supervisor/supervisord.conf # supervisord开机启动/bin/bash /server/scripts/test.sh >/dev/null2>/dev/null# 3.最后修改rc.local⽂件的执⾏权限[root@localhost ~]# chmod +x /etc/rc.local[root@localhost ~]# chmod755 /etc/rc.local⼆、⾃⼰写⼀个shell脚本将写好的脚本(.sh⽂件)放到⽬录 /etc/profile.d/ 下,系统启动后就会⾃动执⾏该⽬录下的所有shell脚本。
三、通过chkconfig命令设置# 1.将(脚本)启动⽂件移动到 /etc/init.d/或者/etc/rc.d/init.d/⽬录下。
(前者是后者的软连接)mv /www/wwwroot/test.sh /etc/rc.d/init.d# 2.启动⽂件前⾯务必添加如下三⾏代码,否侧会提⽰chkconfig不⽀持。
linux开机启动设置的几种方法
linux开机启动设置的⼏种⽅法Linux开机⾃启动的⼏种⽅式:1.chkconfig以supervisord服务脚本为例:第1步:把上⾯的脚本放在/etc/init.d/⽂件ln -s ./supervisord /etc/init.d/supervisord 第2步:将启动脚本权限改为可执⾏。
chmod a+x /etc/init.d/supervisord 第3步:添加启动项。
chkconfig --add supervisordchkconfig supervisord on 第4步:检查是否设置成功。
chkconfig --list | grep supervisordsupervisord 0:关闭 1:关闭 2:启⽤ 3:启⽤ 4:启⽤ 5:启⽤ 6:关闭2、⼿动配置在⽂件中加⼊启动命令/etc/rc.local3、⽂件指向路径是/etc/init.d下的脚本⽂件/etc/rc[0-6].d0-6是linux操作系统的运⾏级别,运⾏runlevel查看当前运⾏级运⾏级别0:系统停机状态,系统默认运⾏级别不能设为0,否则不能正常启动运⾏级别1:单⽤户⼯作状态,root权限⽤户,⽤于系统维护,禁⽌远程登陆运⾏级别2:多⽤户状态(没有NFS)运⾏级别3:完全的多⽤户状态(有NFS),登陆后进⼊控制台命令⾏模式运⾏级别4:系统未使⽤,保留运⾏级别5:X11控制台,登陆后进⼊图形GUI模式运⾏级别6:系统正常关闭并重启,默认运⾏级别不能设为6,否则不能正常启动/etc/rc[0-6].d⽬录下⽂件的命名规则:S|K + nn + scriptS|K,S开头命名的是开机要执⾏的脚本,K开头命名的是关机要执⾏的脚本nn取值0-100,表⽰优先级,数字越⼤,优先级越低script是软链接指向的脚本的⽂件名/etc/init.d⽬录下的控制脚本接受参数-- start //启动-- stop //停⽌-- restart //重启-- status //状态-- force-reload //重新载⼊配置update-rc.d命令为/etc/init.d⽬录下的脚本建⽴或删除到/etc/rc[0-6].d的软链接增加⼀个服务添加这个服务并让它开机⾃动执⾏update-rc.d apache2 defaults并且可以指定该服务的启动顺序:update-rc.d apache2 defaults 90还可以更详细的控制start与kill顺序:update-rc.d apache2 defaults 20 80其中前⾯的20是start时的运⾏顺序级别,80为kill时的级别。
Linux系统重启脚本使用Shell脚本实现对Linux系统的定时重启和自动恢复
Linux系统重启脚本使用Shell脚本实现对Linux系统的定时重启和自动恢复Linux系统是一种广泛使用的操作系统,它在服务器和嵌入式设备中得到了广泛应用。
在实际运行过程中,为了确保系统的正常运行和稳定性,定时重启和自动恢复是必不可少的功能。
本文将介绍如何使用Shell脚本来实现对Linux系统的定时重启和自动恢复。
实施定时重启功能的第一步是创建一个Shell脚本。
通过使用Linux 的定时任务工具cron,我们可以在指定的时间自动运行这个脚本。
打开终端,输入以下命令创建一个新的脚本文件:```shell$ sudo nano restart.sh```接下来,我们需要编写重启脚本的内容。
在脚本中,我们将使用`shutdown`命令来实现重启功能。
以下是一个示例脚本:```shell#!/bin/bashshutdown -r now```保存并关闭文件。
接下来,我们需要为脚本添加执行权限:```shell$ sudo chmod +x restart.sh```现在,我们可以使用cron来设置定时任务。
通过运行以下命令,我们可以编辑当前用户的cron表:```shell$ crontab -e```在cron表中,每行代表一个定时任务。
按下`i`键进入编辑模式,然后添加以下行来设置每天重启的时间:```30 2 * * * /path/to/restart.sh```这样,每天的凌晨2点30分,系统将自动重启。
修改完成后,按下`Esc`键,然后输入`:wq`保存并退出。
现在,我们已经完成了定时重启功能的设置。
从现在起,系统将在指定时间自动执行重启。
另外,为了确保系统在重启后能够自动恢复到之前的状态,我们还可以编写一个自动恢复脚本。
该脚本将在系统重启后自动运行,并执行一系列操作以将系统恢复到正常状态。
继续使用前面创建的`restart.sh`脚本,我们可以在其中添加自动恢复的操作。
以下是一个示例脚本:```shell#!/bin/bash# 这里是自动恢复的操作```在具体的自动恢复操作中,您可以根据实际需求执行需要的命令和操作,比如恢复数据库、重启服务等。
linux设置systemctl启动脚本
linux设置systemctl启动脚本centos 7 服务的systemctl 脚本⼀般存在:/usr/lib/systemd⽬录。
⽬录下⼜分为system,和user之分,/usr/lib/systemd/system #系统服务,开机不需要登陆就能运⾏的程序(相当于开启⾃启)+/usr/lib/systemd/user #⽤户服务,需要登录后才能运⾏的程序⽬录下⼜存在两种类型的⽂件:*.service #服务unit⽂件*.target #开机级别unitcentos7 的每⼀个服务以。
service 结尾,⼀般分为3部分:【unit】、【service】、【install】[Unit] # 主要是服务说明Description=test # 简单描述服务After=network.target # 描述服务类别,表⽰本服务需要在network服务启动后在启动Before=xxx.service # 表⽰需要在某些服务启动之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系。
[Service] # 核⼼区域Type=forking # 表⽰后台运⾏模式。
User=user # 设置服务运⾏的⽤户Group=user # 设置服务运⾏的⽤户组KillMode=control-group # 定义systemd如何停⽌服务PIDFile=/usr/local/test/test.pid # 存放PID的绝对路径Restart=no # 定义服务进程退出后,systemd的重启⽅式,默认是不重启ExecStart=/usr/local/test/bin/startup.sh # 服务启动命令,命令需要绝对路径PrivateTmp=true # 表⽰给服务分配独⽴的临时空间[Install]WantedBy=multi-user.target # 多⽤户字段说明Type类型有:simple(默认):#以Execstart字段启动的进程为主进程forking:#Execstart 字段以fox()⽅式启动,,此时⽗进程将退出,⼦进程将成为主进程(后台运⾏),⼀般都设置为forking oneshot : #类似于simple,但只执⾏⼀次,systemd会等他执⾏完,才执⾏其他服务dbus: #类似于simple,但会等待D—Bus信号后启动notify: #类似与simple ,但结束后会发出通知信号,然后systemd才启动其他服务idle: #类似与simple,但要等到其他任务都执⾏完,才启动该服务EnvironmentFile:指定配置⽂件,和连词号组合使⽤,可以避免配置⽂件不存在的异常。
开机自启动-AIX-Linux_HP-UX原理及配置
AIX/etc/inittab init守护进程运行,init会打开/etc/inittab,并且执行里面的内容。
(文件部分内容)/etc/rc.d 是inittab里的一组脚本指向开机自动运行方法:1)直接修改inittab文件,使系统在开机重启时运行我们的命令。
2)通过rc.local启动rc.local是inittab里的一个脚本指向,果inittab文件里没有关于rc.local的信息,可以通过此命令创建脚本mkitab -i rcnfs "rc.local:2:once:/etc/rc.local > /dev/console 2>&1"touch /etc/rc.local #新建rc.local文件chmod 700 /etc/rc.local #设置执行权限执行脚本放到/etc/rc.local里之后,AIX系统在重新启动时,就会运行/etc/rc.local里的脚本了。
3)通过/etc/rc.d脚本启动(需要编写start\stop脚本)Linux/etc/inittab 这个文件设定了init进程怎样把系统引导成某种运行级别(不含服务启动脚本内容)(文件部分内容)Xinetd extended internet daemon 新一代网络守护进程服务,又叫超级internet服务器增强了一些网络访问控制功能。
/etc/init.d –> /etc/rc.d/init.d (软连接) 目录下为系统各服务启动脚本包括xinetd/etc/rc.d/rcn.d (n就是运行级0-6) /etc/rc.d/init.d下脚本用ln 命令连接到/etc/rc.d/rcn.d 目录redhat的启动方式和执行次序:1)加载内核2)执行init程序3)/etc/rc.d/rc.sysinit # 由init执行的第一个脚本4)/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式5)/etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件6)/sbin/mingetty # 等待用户登录开机自动运行方法:1)在上面第4步中创建服务,在/etc/rc.d/init.d目录创建服务启动脚本。
Linux系统服务启停脚本
Linux系统服务启停脚本Linux系统服务是在操作系统中运行的程序,可以提供不同的功能和服务。
对于管理员和系统运维人员来说,启动和停止服务是日常工作中常见的任务之一。
为了方便管理和操作,编写一个系统服务启停脚本是非常有必要的。
下面是一个基本的Linux系统服务启停脚本的示例:```bash#!/bin/bash### BEGIN INIT INFO# Provides: myservice# Required-Start: $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: My Service# Description: This script starts and stops My Service.### END INIT INFO# 定义变量SERVICE_NAME="myservice"SERVICE_PATH="/path/to/service" SERVICE_FILE="myservice.sh"PID_FILE="/var/run/myservice.pid" # 启动函数start() {# 检查服务是否已经在运行if [ -f "$PID_FILE" ]; thenecho "Service is already running." exit 1fi# 启动服务cd "$SERVICE_PATH"./"$SERVICE_FILE" &PID=$!echo $PID > "$PID_FILE"echo "Service started."}# 停止函数stop() {# 检查服务是否在运行if [ ! -f "$PID_FILE" ]; thenecho "Service is not running." exit 1fi# 停止服务PID=$(cat "$PID_FILE")kill "$PID"rm -f "$PID_FILE"echo "Service stopped."}# 重启函数restart() {stopsleep 1startecho "Service restarted."}# 控制参数case "$1" instart)start;;stop)stop;;restart)restart;;*)echo "Usage: $0 {start|stop|restart}"exit 1;;esac```以上脚本演示了一个名为"myservice"的服务的启停控制逻辑。
linux开机自启动命令
linux开机自启动命令用户想要在linux开机的时候自启动相关的程序。
那我们要怎么设置呢?下面由店铺为大家整理了linux下开机自启动命令的相关知识,希望对大家有所帮助!linux下开机自启动命令1.开机启动时自动运行程序Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。
init根据配置文件继续引导过程,启动其它进程。
通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。
例如:编辑/etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。
扩展:其他情况下linux自启动程序命令2.登录时自动运行程序用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile。
然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、/.profile,但只执行最先找到的一个。
因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
3.退出登录时自动运行程序退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。
例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份 *.c 文件。
4.定期自动运行程序linux有一个称为crond的守护程序,主要功能是周期性地检查/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。
用户可以通过crontab 命令来建立、修改、删除这些命令文件。
Linux系统如何设置开机自动运行脚本
在Windows 下,我们有很多方法可以设置开机启动,但在Linux 系统下我们需要如何操作呢?Linux 下同样可以设置开机启动,但可能需要我们敲一些命令(可能也有 UI 界面的设置方法,但我不熟,我更多是玩命令)。
下面我们就介绍三种简单但可行的开机启动设置方法。
方法一:修改/etc/rc.d/rc.local 文件/etc/rc.d/rc.local文件会在 Linux 系统各项服务都启动完毕之后再被运行。
所以你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。
但是,首先需要确认你有运行这个文件的权限。
$ chmod +x /etc/rc.d/rc.local为了演示,我们创建了一个脚本,当它被执行之后,将在家目录下写入有特定信息的文件。
$ vim auto_run_script.sh#!/bin/bashdate >> /home/alvin/output.txthostname >> /home/alvin/output.txt保存退出后,再给它赋予可执行权限:$ chmod +x auto_run_script.sh然后,我们再将脚本添加到/etc/rc.d/rc.local文件最后一行:$ vim /etc/rc.d/rc.local/home/alvin/auto_run_script.sh接下来,我们就可以试试效果了。
直接重启系统就可以了:$ sudo reboot重启之后,就会在家目录下看到脚本执行的结果了。
方法二:使用crontab大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。
我们可以自己设置计划任务时间,然后编写对应的脚本。
但是,有个特殊的任务,叫作@reboot,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。
那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过crontab -e来设置。
LINUX系统中设置开机自动执行命令
LINUX系统中设置开机⾃动执⾏命令###1、开机⾃动执⾏命令配置⽂件位置[root@wx-local01 ~]# cd /etc/rc.d/[root@wx-local01 rc.d]# ls -l /etc/rc.d/总⽤量4drwxr-xr-x. 2 root root 107 9⽉510:40 init.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc0.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc1.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc2.ddrwxr-xr-x. 2 root root 72 5⽉2614:02 rc3.ddrwxr-xr-x. 2 root root 72 5⽉2614:02 rc4.ddrwxr-xr-x. 2 root root 72 5⽉2614:02 rc5.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc6.d-rwxr-xr-x. 1 root root 881 5⽉2716:06 rc.local[root@wx-local01 rc.d]# tree /etc/rc.d//etc/rc.d/├── init.d│├── functions│├── mysql -> /home/wx/mysql/support-files/mysql.server│├── netconsole│├── network│├── README│└── syschronzed_date├── rc0.d│├── K50netconsole -> ../init.d/netconsole│└── K90network -> ../init.d/network├── rc1.d│├── K50netconsole -> ../init.d/netconsole│└── K90network -> ../init.d/network├── rc2.d│├── K50netconsole -> ../init.d/netconsole│└── S10network -> ../init.d/network├── rc3.d│├── K50netconsole -> ../init.d/netconsole│├── S10network -> ../init.d/network│└── S63syschronzed_date -> ../init.d/syschronzed_date├── rc4.d│├── K50netconsole -> ../init.d/netconsole│├── S10network -> ../init.d/network│└── S63syschronzed_date -> ../init.d/syschronzed_date├── rc5.d│├── K50netconsole -> ../init.d/netconsole│├── S10network -> ../init.d/network│└── S63syschronzed_date -> ../init.d/syschronzed_date├── rc6.d│├── K50netconsole -> ../init.d/netconsole│└── K90network -> ../init.d/network└── rc.local8 directories, 24 files2、设置开机⾃启动命令[root@wx-local01 rc.d]# vim /etc/rc.d/rc.local#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/local#开机执⾏脚本启动harborsh /scripts/shell/start_harbor/power_on_self_starting_harbor.sh3、设置执⾏权限【不设置执⾏权限,启动后不执⾏⽂件中内容】[root@wx-local01 rc.d]# chmod +x /etc/rc.d/rc.local###。
Linux系统服务管理脚本使用Shell脚本实现对Linux系统服务的启动停止和重启操作
Linux系统服务管理脚本使用Shell脚本实现对Linux系统服务的启动停止和重启操作在Linux系统中,服务是指在后台运行并提供各种功能的应用程序。
对于系统管理员来说,管理服务是非常重要和常见的任务。
为了更高效地管理Linux系统服务,可以使用Shell脚本实现对服务的启动、停止和重启操作。
本文将介绍如何使用Shell脚本来管理Linux系统服务。
一、编写Shell脚本首先,我们需要创建一个Shell脚本文件,例如名为“service_manage.sh”。
使用任何一个文本编辑器,打开一个新的文件,并输入以下内容:```shell#!/bin/bashfunction start_service {sudo systemctl start $1}function stop_service {sudo systemctl stop $1}function restart_service {sudo systemctl restart $1}echo "欢迎使用Linux系统服务管理脚本" echo "请输入您想要执行的操作:"echo "1. 启动服务"echo "2. 停止服务"echo "3. 重启服务"read choicecase $choice in1)echo "请输入要启动的服务名:"read service_namestart_service $service_name;;2)echo "请输入要停止的服务名:"read service_namestop_service $service_name;;echo "请输入要重启的服务名:"read service_namerestart_service $service_name;;*)echo "无效的选择";;esac```上述脚本定义了三个函数:`start_service`、`stop_service`和`restart_service`,分别用于启动、停止和重启服务。
