Bash 木偶初始化脚本不';不创建pid文件吗? CentOS 5.4版(最终版) puppet-server-2.7.19-1.el5从puppetlabs repo安装
Bash 木偶初始化脚本不';不创建pid文件吗? CentOS 5.4版(最终版) puppet-server-2.7.19-1.el5从puppetlabs repo安装,bash,puppet,init.d,sysv,Bash,Puppet,Init.d,Sysv,puppetmaster已成功启动,但它不会创建pid文件。这是停止时出现[失败]消息的原因: /etc/init.d/puppetmaster stop Stopping puppetmaster: [FAILED] 初始化脚本: /etc/rc.d/init.d/functions库: 这是我在调试模式下运行时得到的结果: 我知道启动后手动将pid回送到文件的方法,但是为什么守护进程的--pidfile功能不起作用呢
puppetmaster
已成功启动,但它不会创建pid文件。这是停止时出现[失败]
消息的原因:
/etc/init.d/puppetmaster stop
Stopping puppetmaster: [FAILED]
初始化脚本:
/etc/rc.d/init.d/functions
库:
这是我在调试模式下运行时得到的结果:
我知道启动后手动将pid回送到文件的方法,但是为什么守护进程的--pidfile
功能不起作用呢
daemon$PUPPETMASTER$PUPPETMASTER_OPTS--masterport=${PUPPETMASTER_端口[$i]}--pidfile=/var/run/PUPPETMASTER/PUPPETMASTER.${PUPPETMASTER_端口[$i]}.pid
当然,Puppet master正在以Puppet
用户身份运行:
ps -ef | grep [p]uppet
puppet 23418 1 0 18:13 ? 00:00:00 /usr/bin/ruby /usr/sbin/puppetmasterd
/var/run/puppet/
文件夹的所有者是puppet
:
# ls -ld /var/run/puppet/
drwxr-xr-x 2 puppet puppet 4096 Sep 17 18:46 /var/run/puppet/
创建PID文件的是受控程序(在本例中为puppetmaster
),而不是daemon()
函数<代码>守护进程()
依赖于此
确认在puppetmasterd
创建其pid文件的位置(可以是/var/run/puppet.pid
,/var/lib/puppet/run/master.pid
等)查找、检查puppetmasterd
的内容(如果是脚本),或者杀死puppetmasterd
然后strace-f puppetmasterd 2>&1 | grep'\.pid'
相应地修改
/etc/init.d/puppetmaster
中pidfile
的值。因此,在我看来,这里可能有两种可能性:
- Red Hat的daemon命令具有以下(无帮助)签名:
不完全清楚的是,在程序位置之后包含的任何内容都被视为传递给程序的选项,而不是传递给守护进程函数调用的选项。用法:daemon[+/-nicelevel]{program}
- 因此,在本例中,您将
参数传递给--pidfile
本身,而不是$PUPPETMASTER
。您可以通过使用以下命令来解决此问题:daemon()
守护进程--pidfile=/var/run/puppetmaster/puppetmaster.${puppetmaster_端口[$i]}.pid$puppetmaster$puppetmaster_选项--masterport=${puppetmaster_端口[$i]}
$PUPPETMASTER
(或者更确切地说,它背后的程序)可能会将自身后台化,如果是这样,则可能负责创建自己的.pid文件。流程管理工具就是这样工作的。它可能是配置文件中的一个选项,也可能是由$PUPPETMASTER
表示的程序的一个选项
- 我不是一个傀儡用户,所以我无法在这里帮助您了解细节。但我会深入调查,以了解更多有关此选项的信息
- 重要的是要注意,如果$PUPPETMASTER正在后台监控自身,那么传递给
的daemon()
参数将无效--pidfile
猎得好 包括您正在使用的操作系统的名称/版本/发行版。还发布运行“whichdaemon”的输出。daemon命令可能有问题,但我在跟踪相同的文档/错误列表时遇到问题。在基于Red Hat的上,
daemon
是一个“标准”函数,在/etc/rc.d/init.d/functions
脚本中定义。更新了我的问题。fpaste.org的链接已断开…:(