linux添加开机启动项
在Red Hat Linux中自动运行程序
1.开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。
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 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为"00 9 23 Jan * HappyBirthday",运行"crontab cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。
5.定时自动运行程序一次
定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:
$ at 12:00
at>mailto Roger -s ″Have a lunch″ < plan.txt
at>Ctr-D
Job 1 at 2000-11-09 12:00
2000-11-09 12:00时候自动发一标题为"Have a lunch",内容为plan.txt文件内容的邮件给Roger。
#!/bin/bash
RESTART="........" #里面写相应服务代码
START="......."
STOP=".........."
case "$1" in
restart)
$RESTART
echo "......"
;;
start)
$START
echo "......"
;;
STOP)
$STOP
echo "......"
;;
*)
echo "Usage: $0 {restart ¦ start ¦ stop}"
exit 1
esac
exit 1
脚本写完要修改一下权限 chmod u+x test.sh
首先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写到一个文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在 /etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序!
要启动scim(某一程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表示是属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相应的软链接就可以了。
这个脚本其实很简单,就两行:
#!/bin/bash
/usr/bin/scim
第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。
还需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接还要起名为SXXX,这样系统才能让它随机启动
添加自启动脚本
首先把自己的脚本放到/etc/init.d中,,然后执行如下指令:
update-rc.d a start 90 2 3 4 5 . stop 90 0 1 6 .
其中a就是你的脚本,注意有两个点。
a脚本范例。
#!/bin/sh
# Source function library.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
else
. /lib/lsb/init-functions
fi
MOD=/a.ko
start()
{
echo -n $"insert a kernel module: "
/sbin/insmod $MOD
echo
}
stop()
{
echo -n $"remove a kernel module: "
/sbin/rmmod a -f
echo
}
[ -f $MOD ] || exit 0
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload}"
update-rc.d命令,是用来自动的升级System V类型初始化脚本,简单的讲就是,哪些东西是你想要系统在引导初始化的时候运行的,哪些是希望在关机或重启时停止的,可以用它来帮你设置。这些脚本的连接位于/etc/rcn.d/LnName,对应脚本位于/etc/init.d/Script-name.
1、设置指定启动顺序、指定运行级别的启动项:
update-rc.d <service> start <order> <runlevels>
2、设置在指定运行级中,按指定顺序停止:
update-rc.d <service> stop <order> <runlevels>
3、从所有的运行级别中删除指定的启动项:
update-rc.d -f <script-name> remove
例如:
update-rc.d script-name start 90 1 2 3 4 5 . stop 52 0 6 .
start 90 1 2 3 4 5 . : 表示在1、2、3、4、5这五个运行级别中,按先后顺序,由小到大,第90个开始运行这个脚本。
stop 52 0 6 . :表示在0、6这两个运行级别中,按照先后顺序,由小到大,第52个停止这个脚本的运行。
如果在 /etc/init.d 中加入一个 script,还须要制作相关的 link
在 /etc/rc*.d 中。K 开头是 kill , S 开头是 start , 数字顺序代表启动的顺序。(SysV)
update-rc.d 可以帮你的忙。
例:
在 /etc/init.d 中建立一个叫作 zope 的 script , 然后
update-rc.d zope defaults
就会产生以下链結::
Adding system startup for /etc/init.d/zope ...
/etc/rc0.d/K20zope -> ../init.d/zope
/etc/rc1.d/K20zope -> ../init.d/zope
/etc/rc6.d/K20zope -> ../init.d/zope
/etc/rc2.d/S20zope -> ../init.d/zope
/etc/rc3.d/S20zope -> ../init.d/zope
/etc/rc4.d/S20zope -> ../init.d/zope
/etc/rc5.d/S20zope -> ../init.d/zope
其他进阶使用方式请 man update-rc.d
linux添加开机启动项相关推荐
- linux 添加开机启动项的三种方法。
原文地址: https://blog.csdn.net/lylload/article/details/79488968 Shell环境变量配置文件:https://blog.csdn.net/yzs ...
- linux 添加开机启动项的三种方法
linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...
- Linux 添加开机启动项的三种方法
linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...
- 【linux 】添加开机启动项的方法|Linux目录结构和存放哪些文件
目录 linux 添加开机启动项的方法 编辑文件 /etc/rc.local 在/etc/init.d目录下添加自启动脚本 每次登录自动执行 通过chkconfig命令设置 把脚本注册为系统服务 在c ...
- win8手动添加linux启动项,Win8下添加开机启动项的简单办法
Win8的用户越来越多,大家会发现任务管理器新添加了一个"启动"的功能,我们可以在其中随意删减开机启动项,以达到提高开机效率的目的.但是怎样才能添加我们平时经常用到的软件作为开机启 ...
- Linux 设置开机启动项的几种方法
Linux 设置开机启动项的几种方法 方法一:编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本. 所以我们可以直接在/etc/rc.local中添加启动脚本. ...
- windows 增加开机启动服务器,Windows Server2012删除或添加开机启动项的方法
Windows Server2012怎么删除或添加开机启动项?Windows Server 2012跟Windows8一样,拥有全新的任务管理器.Windows Server 2012可以随意在服务器 ...
- Ubuntu下添加开机启动项的2种方法
Ubuntu下添加开机启动项的方法 1.方法一,编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本, 所以我们可以直接在/etc/rc.local中添加启动脚本 ...
- windows快速添加开机启动项/禁用开机启动项
启动项就是开机后系统自动加载运行的程序,一些软件设置成开机启动后会更方便我们的使用.下面就和大家分享一个win10系统添加开机启动项的小技巧 1.按下 win+r 快捷键,打开运行窗口,输入shell ...
最新文章
- 7年增长16倍,清华AI+ML课程学生数暴增 | AI Index 2018
- Android输入输出系统之TouchEvent流程
- TiDB 官方设计文档翻译(二)
- 013PHP文件处理——filemtime filectime fileatime date_default_timezone_set touch
- IOS15之swift的Alamofire 5.4框架的网络封装
- 办公技巧:Excel日常高频使用技巧,赶快收藏吧!
- word List 13
- Effective C++学习第四天
- 用计算机画 信息技术课标要求,[引用]小学信息技术课程标准
- cad批量打印_CAD插件之批量打印1
- VLAN划分-思科模拟器-基础回顾
- 【年终总结】回顾我平凡且不平凡的 2021
- The Security Database on the Server Does Not Have a Computer Account
- Win 10 + VMware Workstation Pro15 + Ubuntu 18.04 虚拟机安装教程
- Python实现淘宝卖家价格分析,淘宝卖家必会的操作!
- mc服务器物品id,我的世界物品id1period;12period;2 | 手游网游页游攻略大全
- 《C语言点滴》参考文献
- TSA-Net论文详解
- 微信三方登录相关(Swift)
- 【数据分析】了解数据分析
热门文章
- java开发工程师培训费,南通渡课Java开发工程师培训费用是多少
- 百度振兴计划:中国版ChatGPT“狂飙”的机遇与挑战
- formate在python_python的format方法
- 计算机密码设置要求包括哪些内容,电脑开机密码设置方法有哪些
- STM32分别实现温湿度的采集和OLED显示屏显示数据
- 在线客服——各第三方的收费标准及服务提供
- android游戏基址,Android上可执行ELF文件中的段不能有基址
- ADGUARD——去除广告利器
- Excel如何将工作表按照表内某一单元格命名
- 相邻图片之间有空白间隙的问题解决