linux.不更新pid文件,linux – 如何删除权限并仍在/ var / run中清理我的pid文件?

我有一个名为foo的守护进程.我的init脚本/etc/init.d/foo启动foo守护进程并将其pidfile存储在/var/run/foo.pid中,这似乎是标准位置.因为/etc/init.d/foo必须以root身份运行,所以在/ var / run中创建和删除pidfiles没有问题.

foo守护程序实际上是程序/usr/sbin / foo,它旨在以root用户身份在init脚本中调用,但随后立即将其权限删除给非特权foo用户.但是,我还希望这个/usr/sbin / foo程序在由于严重错误而退出时删除它的pid文件.但由于它已经删除了它的权限,它不再能够从/ var / run目录中删除文件.

我目前的方法是使用seteuid而不是setuid来删除我的权限,然后在退出之前立即重新提升权限,以便我可以从/ var / run中正确删除pidfile.但是,我遇到了很多很多问题,各种库和外部程序在使用不同于eid的euid时会出现问题.

有没有其他方法可以实现这一目标?我想另一种选择是将我的pidfile放在root和foo用户都可写的目录中.但是我们所有的其他pidfiles都在/ var / run中,包括其他以无特权用户身份运行的程序的pidfiles,所以我也想把foo.pid文件放在那里.

除了使用seteuid之外,还有什么方法可以做到这一点吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值