Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Hasn't the ability to check progress be around forever? You could always send it SIGUSR1 and get back a progress report on stderr.


sort by: page size:

Isn’t progress reported on stderr?

But surely if you could send a SIGUSR1 and get the progress it would be useful. I won't always have the foresight to put the progress argument. Maybe I expected the task to be quick but it's not.

By the way, on versions that don't support status=progress (like busybox and the BSD versions), you can periodically send a USR1 signal to get a progress update.

Thanks for the tip for progress! I didn't know this utility and it sounds really helpful.

I prefer progress(1) written for BSD UNIX.

Dates back to 2002.


You can also run dd with `status=progress`, at least on recent versions.

> we just need a progress meter that says "don't bother getting up up", "get lunch now", or "come back tomorrow", but I don't know that there is one.

Doesn't `status=progress` work? (The "obscure option to GNU dd" that the article mentions)


`progress` (https://github.com/Xfennec/progress) and similar can be very helpful too depending on the backup utilities being used (in my case often involving rsync) even if the processes normally have everything set to quiet so no progress information is automatically forthcoming.

It absolutely could, although it doesn't yet. You can track progress by following this issue: https://github.com/kyleconroy/sqlc/issues/28

Yep. GNU dd definitely supports status=progress, at least in any modern version.

Maybe they're thinking of busybox dd?


If you care about showing the progress

    pv < input.iso > /dev/sdX
Is a more portable way to do that, as "status=progress" is a GNU modification to dd, as I recall. Of course the most portable is to use one of the POSIX mainstays like cat or cp.

not sure status=progress is that obscure a command, it was added relatively recently as well (in terms of dd).

That tells you something is happening, and how much has been done, but not how much work there is left to do, or how much back pressure (load) there is on the server side. Consequently you can't work out how far along the progress is or how long is left. If you assume that there'll be a consistent amount of progress you can guess, but for a large upload (eg gigabytes) you'll usually be wrong.

If the server could send data back to update the progress event it would be really nice. Right now though, that can't be done (as far as I know.. maybe there's a way now.. I haven't looked for years.)


> Tiger’s dd doesn’t have status=progress

Maybe sending it SIGINFO (^T in terminal) could help? Dunno if it's supported as far back as Tiger's dd.


I also recommend the `--progress` flag to get a bit of feedback.

I've wondered for a bit why in the Unix philosophy there isn't a standard /dev/progress or something for somewhat unified progress reporting already. It seems something that should be easy to standardize: make it append-only and take maybe a task name and a double [0, 1] (maybe, maybe optionally x of y counts, but a single double should be all you need). Let the terminal, the shell, and/or the GUI figure out how it wants to display things.

All of the major OSes today have some sort of dock/taskbar/activity panel standardized progress reporting API that is basically that simple, seems interesting we haven't pushed that idea back into the terminal. Makes you wonder what other sorts of GUI era pseudo-devices might be useful to add to Unix. In the other direction, imagine if some of these tools had been standardized as real devices in past terminals, like using something fun like an analog meter for progress operations.


`progress` is also a nice tool to see progress of programs operating linearly on a single file. A lot of tools do that!

Wait, which progress bars? Is it using SIGINFO or something?

You can track progress at https://github.com/crystal-lang/crystal/issues/5430

But for many applications that's a non-issue.

next

Legal | privacy