DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

前言#

我们在linux上要启动一个程序得时候, 往往都是要写一堆路径, 找到要启动得服务程序, 再用 ./*** 启动服务. 那么我们有没有快速启动方法吗, 答案是肯定得

service 介绍#

官方介绍(英文): https://linux.die.net/man/8/service

简单说一下service运行过程. 以iptables为例: service iptables start

  • 首先,sevice 会去/etc/init.d下寻找iptables脚本, start是iptables脚本里的一个参数(你可以去查看networking这个脚本支持的参数)
  • 然后告诉系统运行iptables这个脚本,剩下的事情就交给iptables脚本去坐了,事实就是这么简单。

至此,你们应该知道如何添加一个service命令了吧

编写一个脚本,然后把它放在/etc/init.d这个目录下,再用service + 脚本名字 运行即可。如果是要开机自动启动那就得用chkconfig命令了

注意:
A、service这个命令往往是即时生效,不用开关机,但是重启后服务会回到默认状态。

B、在init.d里面得脚本是没有后缀名的

 

设置开机自动启动#

chkconfig --add test 
chkconfig test on/off    //重启后永久生效

上面的不生效:则使用下面得方法

通过update-rc.d 命名设置开机自启动

cd /etc/init.d
sudo update-rc.d test defaults 95

注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:

复制代码
复制代码
update-rc.d: warning: /etc/init.d/test missing LSB information
update-rc.d: see &lt;http://wiki.debian.org/LSBInitScripts&gt;
Adding system startup for /etc/init.d/test ...
/etc/rc0.d/K95test -&gt; ../init.d/test
/etc/rc1.d/K95test -&gt; ../init.d/test
/etc/rc6.d/K95test -&gt; ../init.d/test
/etc/rc2.d/S95test -&gt; ../init.d/test
/etc/rc3.d/S95test -&gt; ../init.d/test
/etc/rc4.d/S95test -&gt; ../init.d/test
/etc/rc5.d/S95test -&gt; ../init.d/test
复制代码
复制代码

卸载启动脚本的方法:

cd /etc/init.d
sudo update-rc.d -f test remove

命令输出的信息参考如下:

复制代码
复制代码
Removing any system startup links for /etc/init.d/test ...
/etc/rc0.d/K95test
/etc/rc1.d/K95test
/etc/rc2.d/S95test
/etc/rc3.d/S95test
/etc/rc4.d/S95test
/etc/rc5.d/S95test
/etc/rc6.d/K95test
复制代码
复制代码

 

常见错误:#

1. service启动任务时提示: program-service: unrecognized service

  这是因为我们还没有更改 执行脚本得 的权限为可执行。chmod +x /etc/init.d/serviceName 后重新执行上一个命令

2. 添加到开机启动任务时提示: service *** does not support chkconfig

复制代码
复制代码
[root@redis01 test]# chkconfig --add test
service test does not support chkconfig
解决方法:(在/etc/init.d/test添加两行注释)
#!/bin/sh
#添加的两行注释内容如下:
# chkconfig:   2345 90 10
# description:  test is a persistent key-value database
# 注释的意思是,test服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10
[root@redis01 test]# chkconfig --add test
[root@redis01 test]# echo $?
0
[root@redis01 test]# chkconfig --list | grep test
test          0:off1:off2:on3:on4:on5:on6:off
复制代码
复制代码

  在编辑其它类似服务时,也可能出现这种情况,解决方法基本类似

posted on   DoubleLi  阅读(1663)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2017-11-18 UCRT: VC 2015 Universal CRT, by Microsoft
2017-11-18 vs2015部署---下一代VC运行时库系统:the Universal CRT
2017-11-18 VS2015开发的C++应用如何不依赖Visual C++ 2015 redistributable?
2013-11-18 GDI泄露检测
2013-11-18 对开发中常见的内存泄露,GDI泄露进行检测
2013-11-18 工作学习笔记——GDI泄露检测利器
2013-11-18 查GDI对象泄露的利器:GDIView
点击右上角即可分享
微信分享提示