Table of Contents

Stuff

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

Speed test

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.

Video file comparison using mpv

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 ...

Windows fork problems

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())