gpt4 book ai didi

perl - 在启动时启动 perl 脚本

转载 作者:行者123 更新时间:2023-12-04 19:34:58 25 4
gpt4 key购买 nike

我目前正在尝试启动一个应该在启动时一直运行的 perl 脚本。

我正在使用 CentOS 服务器。

我在 /etc/rc.d/rc.local 中添加了这一行并且当我从控制台键入同一行时,脚本不会启动:

perl /svcmon/bin/svcperf.pl --svc fav01svc --interval 5 >> /dev/null &

这个脚本实际上应该被启动,你必须等待尽可能多的时间来插入你的数据库中的数据,但是添加
>> /dev/null/& 

允许您在脚本在后台运行时继续使用您的机器。

我真的不知道我能做什么,因为我不明白为什么它不起作用......

你知道我可以尝试什么吗?

编辑:事实证明,我设法通过这样做正确启动了我的脚本:
nohup /usr/bin/perl /svcmon/bin/svcperf.pl --svc fav01svc --interval 5 > /outputsvcperf.txt &
但它不起作用,因为 PostgreSQL 服务器没有及时启动,而它应该在启动时和我的 perl 脚本之前启动......

最佳答案

  • 在你的 Unix shell(命令工作的地方)输入命令:“which perl

    这将产生一个输出,给出 完整路径 到 perl 二进制文件。例如,它返回“/bin/perl
  • 在您的 rc.local 脚本中,将“perl your-command”更改为“/bin/perl your-command”(基本上将 Perl 替换为完全限定的名称)。 (帽子/提示@choroba 在评论中注意)。

    这是因为,在您的命令行中,您有一个 $PATH设置,它可以让您的 Unix shell 查找驻留在路径中的命令。当 RC 脚本运行时,它们没有由 shell 为它们设置的 PATH,因此不知道在哪里搜索命令。
  • 顺便说一句,这可能不是问题,但将“>>/dev/null”更改为“>/dev/null”。您不会附加到空设备,而是输出到它。

  • 引用:
  • https://serverfault.com/questions/268674/why-does-rc-local-require-absolute-paths-how-can-i-run-a-script-at-startup-that
  • https://serverfault.com/questions/297527/how-to-test-etc-rc-d-rc-local-to-make-sure-a-command-will-start-successfully-at
  • http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-boot-init-shutdown-run-boot.html
  • 关于perl - 在启动时启动 perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16518802/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com