解决 xxx is not running, but lock file (/var/lock/subsys/xxx) exists

一、现象

运行Linux下的程序时,很多时候因为异常或某些不知名因素被强

退,当你重新启动时,发现系统会报一个**“ERROR! xxx is not
running, but lock file (/var/lock/subsys/xxx) exists”**的异常
可是这时明明我们刚准备启动这个程序呢?

带着几个问题来说明:

 如何解决问题?
 造成这种现象的某些因素?

二、如何解决问题

我们直接cd到/var/lock/subsys/目录,将xxx这个文件删除就可以了。

        cd /var/lock/subsys
	    rm -f xxx

Note:不是删除/var/lock/subsys/这个目录,千万记住。虽然系统允许你重新创建一个

三、造成这种现象的某些因素

  1. 先来了解一下 /var/lock/subsys的作用
**分为两种情况**:
第一种
	在Linux系统中,如果你执行了关闭系统的操作,系统会优先检查 
	/var/lock/subsys下的服务文件,并把这些文件对应的各个服务一一关闭。
第二种
	而当我们启动一个程序时,系统也会去 /var/lock/subsys下检测是否
	有对应的文件,如果没有,程序启动过程就在此目录下创建一个文件。
	如果有,则可能停止启动,并报异常。
  1. 造成异常的因素

根据前面说到的作用,我们判断一个程序是否正在运行,的确可以通过判断此目录下的文件是否上锁来确认。
但是这个目录的内容并不能100%确定文件一定上锁了,因为很多服务在启动脚本里用touch来创建这个加锁文件。当程序异常退出是,可能未完成清除锁的操作,导致锁文件仍然存在。下次运行程序时,相当于在程序里给一个线程上两次一样的锁,本身就不合逻辑。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值