Perl 守护进程不与 Sleep() 一起工作

2024-06-23

我使用编写了一个简单的测试守护进程过程::守护进程 http://search.cpan.org/~deti/Proc-Daemon-0.14/lib/Proc/Daemon.pod。这是守护进程:

 #!/usr/bin/perl

 use Proc::Daemon;

 $daemon = Proc::Daemon->new(
        work_dir     => '/scripts/',
        child_STDOUT => '/scripts/child.log',
        child_STDERR => '+>>debugchild.txt',
        pid_file     => 'pid.txt',
        exec_command => 'perl /scripts/test.pl'
    );


foreach(@ARGV)
{
if ( /install/i )
{
    $Kid_1_PID = $daemon->Init;
}
elsif (/remove/i)
{
    $stopped = $daemon->Kill_Daemon();
}
}

这是它执行的测试:

#!/usr/local/bin/perl

while (1) {

print "test\n";
sleep(1);
}

while 循环仅使用 print 语句就可以正常工作,但是当我添加 sleep(); 时日志是空的。为什么会这样呢?


Perl 不会自动刷新缓冲区,因此您对文件的写入只会在相当长的一段时间后发生。当您没有睡眠时,由于写入的数据量很大,您的缓冲区几乎会自动刷新。

尝试这个:

$| = 1;
while (1) {
    print "test\n";
    sleep(1);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Perl 守护进程不与 Sleep() 一起工作 的相关文章

随机推荐

  • 如果文档的字段映射不匹配,Elasticsearch 会默默失败

    我在使用 Elasticsearch 时遇到了一个奇怪的问题 我的映射指定某个字段的类型long 现在 我无意中尝试索引一些具有以下内容的文档 string键入该字段而不是long 我没有从 Elasticsearch 中收到任何错误 但文
  • 在反应中点击渲染新组件

    我正在练习反应并尝试通过单击按钮来呈现新组件 这里的第一页是电子邮件 我想要呈现的组件包含密码页面 class App extends React Component passwordpage return
  • 通过反应流发送大文件

    我正在编写的应用程序的一部分需要将任意大 对于这个问题 我假设 100 200 GB 文件从客户端传输到服务器 重要的是 接收器 服务器 不存储该文件 它只是读取 检查流并将其发送到下一个点 因为我在任何时候都不需要整个文件 但希望同时进行
  • 正则表达式替换Python中的文本

    我的文字看起来像 Added a foo b foo 目标是使用一个正则表达式将第二个 foo 替换为 bar 并将两个双引号之间的第一个 foo 保持不变 所以在上面的文本中 我正在寻找的结果是 Added a foo b bar Tha
  • 如何将键盘焦点赋予弹出的 Gtk.Window

    我有一个弹出窗口 使用 WINDOW POPUP 类型创建 其中包含一些小部件 包括文本条目 问题是 当我单击该条目时 该条目没有获得焦点 因此我无法输入任何内容 我是否必须设置任何标志才能允许窗口获得键盘焦点 对于需要焦点的 gtk wi
  • Pandas DataFrame:根据条件替换列中的所有值

    我有一个简单的 DataFrame 如下所示 Team First Season Total Games 0 Dallas Cowboys 1960 894 1 Chicago Bears 1920 1357 2 Green Bay Pac
  • 如何调整 UITableView 的 tableHeaderView 的大小?

    我在调整 tableHeaderView 大小时遇到 问题 这么简单是行不通的 1 创建一个UITableView和UIView 100 x 320像素 2 将UIView设置为UITableView的tableHeaderView 3 构
  • 使应用程序成为系统关键流程

    我怎样才能创建一个关键系统进程 以便它不能从 C 中的任务管理器结束 一般来说 这是不可能的 因为这会剥夺用户的控制权 Windows 甚至允许您终止高度关键的进程 例如 csrss exe 请不要尝试终止它 保证立即出现 BSOD Ray
  • Kubernetes Pod 事件显示为“

    我们正在调查与 Azure Kubernetes 服务上的 Pod 启动缓慢相关的问题 Pod 启动完成后 我们将无法看到历史事件 最新的事件日志显示为
  • Angular Material 自定义组件主题

    我正在尝试在自定义 Angular Material 主题中为其他一些组件使用自定义调色板中的颜色 例如 带有垫子工具栏的 div 和带边距的图标 应使用主要背景颜色填充 关于主题的 Angular Material 指南说道 主题文件不应
  • Java Connection.close 是否回滚?

    Java Connection close 是否回滚到finally 块 我知道 Net SqlConnection close 可以做到这一点 有了这个 我可以在没有 catch 的情况下创建 try finally 块 Example
  • 如何配置仅在生产模式下运行 http 的 Keycloak 18?

    我遇到的情况是 我在终止安全 https 连接的反向代理后面运行 Keycloak 18 0 0 因此 我想构建一个 Docker 镜像 将 Keycloak 配置为仅侦听 http 例如端口 8080 我已经调整了Dockerfile来自
  • Nuxt 致命错误 TypeError:无法解构“this”的属性“nuxt”,因为它未定义

    当我尝试构建 docker 映像时 运行后出现此错误yarn build 0 0 496 yarn run v1 22 19 0 0 531 nuxt build 0 1 538 Using Tailwind CSS from assets
  • 如何使用 azure pipeline 生成 .AAB 文件并签署 Android 应用程序包

    我想使用 Azure 管道生成 Android 应用程序包 aab 文件 但在生成 Android 应用程序包文件时遇到问题 我已使用以下 Gradle 任务来生成并签署 aab 文件 但是 它生成 APK 文件 我想生成 aab 文件 t
  • Xcode 8.1 beta 3 - AQDefaultDevice 消息 [重复]

    这个问题在这里已经有答案了 从 beta2 开始 在创建音频输出单元后 我每两秒就会收到一条消息 2016 10 14 11 31 21 572479 MyProduct 94063 8294923 aqme 254 AQDefaultDe
  • 当条码扫描仪读取条码时,EditText焦点消失

    我需要读取应用程序的条形码 我为此使用触发式条码扫描仪 通过 USB 进行通信 如您所知 条形码扫描仪的工作原理类似于键盘 当设备读取条形码时 它会尝试将值写入具有焦点的输入 用户按下扳机 条码扫描器开始工作 直到 条码读取成功 然后它进入
  • 如何有选择地观察 Android Room 数据库 INSERT、DELETE 和 UPDATE 事件?

    我的 DAO 是这样设计的 Dao interface FooDao Query SELECT FROM foo LiveData
  • 按字母/字典顺序排列的两个字符串的平均值

    假设您采用字符串 a 和 z 并按字母顺序列出它们之间的所有字符串 a b c x y z 取这个列表的中点 你就会找到 m 所以这有点像取这两个字符串的平均值 您可以将其扩展到具有多个字符的字符串 例如 aa 和 zz 之间的中点将位于列
  • Wix\heat.exe 奇怪的输出

    我有一个目录 其中有一个文件 Iesi Collections dll 当我运行以下命令时 heat exe dir D MyDir cg References srd o D Product wxs nologo gg g1 dr INS
  • Perl 守护进程不与 Sleep() 一起工作

    我使用编写了一个简单的测试守护进程过程 守护进程 http search cpan org deti Proc Daemon 0 14 lib Proc Daemon pod 这是守护进程 usr bin perl use Proc Dae