如何从长时间运行的linux命令发送进程进度信息

马努

我打算编写一个Linux命令,该命令将(使用自定义逻辑)处理一个很大的文件。一旦运行此命令,将需要几个小时才能完成任务。

给出eta输出的最佳方法是什么?

编写一个100字节的进度状态文件的想法怎么样?在特定阶段,我可以将字节写入文件。说40%,我可以将40个字节写入文件。一旦文件大小达到100字节大小,则表示该过程已完成。因此,要监视进度,我们只需要检查此文件的大小即可。

是否有处理此类进度信息的一般方法?我不想在程序中包含太多逻辑来显示进度信息。我正在寻找一个简单的解决方案。

有什么建议?

马克·谢切尔

正常方式是建立一个信号处理程序等dd做,然后发送的处理的SIGUSR1或使用诸如此类kill命令,并将其捕获信号,并输出状态消息。尝试

man dd

因此,例如,在我的iMac上dd使用SIGINFO

# Move a whole load of nothing to nowhere in the background
dd if=/dev/zero of=/dev/null &
[1] 11232

# No output, till I want some a few seconds later

kill -SIGINFO 11232
12875835+0 records in
12875834+0 records out
6592427520 bytes transferred in 9.380158 secs (702805581 bytes/sec)



# No more output, till I want some a few more seconds later

kill -SIGINFO 11232
19163866+0 records in
19163865+0 records out
9811898880 bytes transferred in 14.015095 secs (700095068 bytes/sec)

即使在Shell脚本中,信号处理程序也很容易设置。例如:

#!/bin/bash

trap "echo Progress report..." SIGINT
echo "My process id is $$"

while : ; do
    sleep 10    # Do something - admittedly little :-)
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在自定义长时间运行的计时器作业中设置进度

来自分类Dev

如何取消可以多次取消的长时间运行的操作?

来自分类Dev

异步启动长时间运行的进程

来自分类Dev

如何识别活动(长时间运行)HTTP请求的URI?

来自分类Dev

如何使用子进程和Popen从长时间运行的进程中返回stdout?

来自分类Dev

如何重组长时间运行的php进程以不超时

来自分类Dev

如何使用TPL处理长时间运行的过程

来自分类Dev

如何在PowerShell中停止长时间运行的cmdlet

来自分类Dev

远程长时间运行命令

来自分类Dev

如何从长时间运行的linux命令发送进程进度信息

来自分类Dev

长时间运行的命令完成后的桌面通知

来自分类Dev

在长时间运行的hangfire过程中发送心跳

来自分类Dev

如何从C ++中长时间运行的子进程获取输出

来自分类Dev

如何在自定义长时间运行的计时器作业中设置进度

来自分类Dev

长时间运行的命令完成后的桌面通知

来自分类Dev

检测长时间运行的命令并在完成时通知

来自分类Dev

在终端关闭/终止后,哪些Linux服务器设置允许我长时间运行的进程继续运行?

来自分类Dev

如何使用子进程和Popen从长时间运行的进程中返回stdout?

来自分类Dev

如何与长时间运行的进程并行地从Rails ActionController返回响应?

来自分类Dev

如何在长时间运行的操作开始之前/期间显示进度屏幕?

来自分类Dev

如何获得与特定模式匹配的长时间运行的进程的列表?

来自分类Dev

如何监视长时间运行的命令的进度?

来自分类Dev

杀死长时间运行的rm命令的效果

来自分类Dev

从长时间运行的命令的输出中过滤多个项目

来自分类Dev

sshj:如何在执行命令时从长时间运行的命令中读取InputStream

来自分类Dev

如何取消使用`concurrent.futures.ProcessPoolExecutor`运行的长时间运行的子进程?

来自分类Dev

使用 Doctrine 长时间运行的 php 进程

来自分类Dev

如何异步捕获长时间运行的 Python 子进程的输出

来自分类Dev

如何用 Raspberry Pi 上的另一个事件中断 GPIO 按钮触发的长时间运行的进程?

Related 相关文章

  1. 1

    如何在自定义长时间运行的计时器作业中设置进度

  2. 2

    如何取消可以多次取消的长时间运行的操作?

  3. 3

    异步启动长时间运行的进程

  4. 4

    如何识别活动(长时间运行)HTTP请求的URI?

  5. 5

    如何使用子进程和Popen从长时间运行的进程中返回stdout?

  6. 6

    如何重组长时间运行的php进程以不超时

  7. 7

    如何使用TPL处理长时间运行的过程

  8. 8

    如何在PowerShell中停止长时间运行的cmdlet

  9. 9

    远程长时间运行命令

  10. 10

    如何从长时间运行的linux命令发送进程进度信息

  11. 11

    长时间运行的命令完成后的桌面通知

  12. 12

    在长时间运行的hangfire过程中发送心跳

  13. 13

    如何从C ++中长时间运行的子进程获取输出

  14. 14

    如何在自定义长时间运行的计时器作业中设置进度

  15. 15

    长时间运行的命令完成后的桌面通知

  16. 16

    检测长时间运行的命令并在完成时通知

  17. 17

    在终端关闭/终止后,哪些Linux服务器设置允许我长时间运行的进程继续运行?

  18. 18

    如何使用子进程和Popen从长时间运行的进程中返回stdout?

  19. 19

    如何与长时间运行的进程并行地从Rails ActionController返回响应?

  20. 20

    如何在长时间运行的操作开始之前/期间显示进度屏幕?

  21. 21

    如何获得与特定模式匹配的长时间运行的进程的列表?

  22. 22

    如何监视长时间运行的命令的进度?

  23. 23

    杀死长时间运行的rm命令的效果

  24. 24

    从长时间运行的命令的输出中过滤多个项目

  25. 25

    sshj:如何在执行命令时从长时间运行的命令中读取InputStream

  26. 26

    如何取消使用`concurrent.futures.ProcessPoolExecutor`运行的长时间运行的子进程?

  27. 27

    使用 Doctrine 长时间运行的 php 进程

  28. 28

    如何异步捕获长时间运行的 Python 子进程的输出

  29. 29

    如何用 Raspberry Pi 上的另一个事件中断 GPIO 按钮触发的长时间运行的进程?

热门标签

归档