加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 守护进程无法从结构脚本或启动时启动 – 只能以交互方

发布时间:2020-12-13 16:45:44 所属栏目:Linux 来源:网络整理
导读:我在/etc/init.d中有一个守护程序脚本,它使用tcpdump命令执行一些后台数据包记录.使用sudo /etc/init.d/packetlog start的交互式 shell可以很好地启动脚本 当我通过我的结构脚本(下面)执行相同的命令时,该命令成功返回但该进程未运行. def startpacketlog():
我在/etc/init.d中有一个守护程序脚本,它使用tcpdump命令执行一些后台数据包记录.使用sudo /etc/init.d/packetlog start的交互式 shell可以很好地启动脚本

当我通过我的结构脚本(下面)执行相同的命令时,该命令成功返回但该进程未运行.

def startpacketlog():
    sudo(r'/etc/init.d/packetlog start')

此外,服务不会像我预期的那样在启动时自动启动.

一些解决此问题的提示将不胜感激

该脚本为here,并从此original进行了修改

更新
这似乎是使用fabric在此主机上启动任何服务的一般问题.启动apache2服务时,我遇到了同样的问题.我可以成功使用Fabric停止服务.

更新2
在重新阅读the documentation和一些实验后,以下更改解决了问题. (这会禁用远程伪终端,无论是什么)

def startpacketlog():
    sudo(r'/etc/init.d/packetlog start',pty=False)

解决方法

直接调用init脚本时,当前环境可能会“泄漏”到init脚本中.

使用适当的系统工具测试init脚本:

# Redhat/CentOS,and Ubuntu with upstart
sudo service packetlog start

# traditional method on Debian/Ubuntu 
sudo invoke-rc.d packetlog start

这些将确保脚本在干净的环境中启动,与init启动时的环境相同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读