Some miscellaneous stuff that doesn't fit otherwise into the structure…
For example, speed test by ''timeout'' + ''dd'', video file comparison using mpv, Windows fork problems…
root@ubuntu:~# timeout --foreground -s INT 60s dd if=/dev/sda bs=4096 of=/dev/null # ad-hoc USB3 storage speed test...
The idea is to not measure transfer duration of a fixed size, but to let it run through until a fixed time has passed (and then look at the transfer speed). For this, we wrap the dd
invocation into the timeout
command.
The problem, then, was that dd
didn't output anything when run under timeout
.
The solution was to use both of –foreground
and -s INT
(after the timeout expires, fire signal SIGINT at the wrapped process) together. This restored dd's output-at-end, which will now tell the overall transfer speed, as previously expected.
To just get the console output of mpv
where it describes the file played (so we can run a wdiff over the saved outputs of similar files): (Previously, it used to be mplayer –identify
or somesuch.)
$ mpv --vo=null --ao=null --frames=1 ...
On Windows (Win32 API), a process can well have threads, but no fork()
-without-exec()
is possible, as processes are created to be separate (spawn?)…
The CygWin compatibility layer for Linux/UNIX-targetted programs had to work hard to get something similar going: CygWin highlights: Process Creation (via ansible controller heavy user of fork() without exec())