linux问题总结
编写后台进程的管理脚本,使用service deamon-name stop的时候,出现如下提示:
/sbin/service: line 66: 23299 Terminated env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
原因:
我把管理脚本的名称设为和后台进程名称一样,即:
后台进程名称:deamon-name,
脚本名称:/etc/init.d/deamon-name
脚本中有一句:
killall deamon-name
执行service deamon-name stop,本意是调用deamon-name脚本,结束后台进程deamon-name,结果连“service deamon-name stop”这条进程也被结束了。
解决方法:
把后台进程与脚本设置不同名称即可。
如何让脚本实现开机自启动:
/etc/rc.d/init.d :实际上无论init.d放在什么地方,它都发挥着相同的作用。为了能够使用init.d目录下的脚本,需要有root权限或sudo权限。每个脚本都将被作为一个命令运行
命令的结构大致如下所示:
/etc/init.d/command 选项(/etc/init.d目录下文件都是755的权限)
comand是实际运行的命令,选项可以有如下几种:
start
stop
reload
restart
force-reload
大多数的情况下,会使用 start,stop,restart 选项。例如,如果想关闭网络,可以使用如下形式的命令:
/etc/init.d/networking stop (直接运行即可,Centos6.7中是network没有ing)
又比如,你改变了网络设置,并且需要重启网络。你可以使用如下命令:
/etc/init.d/networking restart
init.d目录下常用初始化脚本有:
networking
samba
apache2
ftpd
sshd
dovecot
mysql
。。。。。。。。。
。。。。。。。。。
注:/etc/rc.d/init.d下的文件中都会有 # chkconfig: 2345 10 90 的字样,如果要自己在init.d目录下写脚本 这里要注意
二、关于/etc/rc.local(也是一种开机自启动脚本的方式)
rc.local是经常使用的一个脚本。
该脚本是在系统初始化级别脚本运行之后再执行的,因此可以安全地在里面添加任意位置的脚本作为系统启动之后执行的脚本。
常见的情况是你可以再里面添加nfs挂载/mount脚本。
此外,你也可以在里面添加一些调试用的脚本命令。
例如,samba服务总是无法正常运行,而检查发现,samba是在系统启动过程中就该启动执行的,
也就是说
samba守护程序配置保证了这种功能本应该正确执行。
碰到这种类似情况,一般也懒得花大量时间去查为什么,因此只需要简单的在/etc/rc.local脚本里追加上:
/etc/init.d/samba start
这样就成功的解决了samba服务异常的问题。
第三种情况:
在 /etc/init.d 目录下增加对应程序启动脚本,然后重启测试,内容如下:
chkconfig --add 脚本名(将该脚本注册到系统服务,此时直接输入脚本可以直接运行)。
chkconfig 脚本名 on(将该服务加入随系统开机启动),添加自启动,必须在脚本里面加入chkconfig 启动顺序,才能加入进去
/etc/rc.local 中部分命令无法执行(
在linux系统中添加随系统启动而自动运行的服务,只需在/etc/rc.local 脚本文件中添加即可,当运行的命令或程序不带路径时,例如:
#!/bin/bash
distccd --user nobody --allow 10.10.98.0/24 --log-file=/var/log/distcc.log --verbose --daemon
loadavg -s 10.10.98.20 >/dev/null 2>&1
注意,distccd、loadavg命令存放在/usr/local/bin/目录下
在系统执行这些命令时将报错,无法正常执行!
由于在执行rc.local脚本时,PATH环境变量未全部初始化,目录/usr/local/bin/ 需在执行/etc/profile 后才被添加到环境变量PATH中。
解决方法:
在 /etc/rc.local 执行 /usr/local/bin/ 目录中的命令需要使用绝对路径。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」