Q:

How to run a command via elisp, completely ignoring its output and status? (fire and forget)

Currently I'm using shell command - which makes a buffer, showing the output, sometimes locking emacs.
What is a good way to run a process that:

Doesn't make a buffer.
Doesn't lock emacs.
Ignores the stdout/stderr.

A:

call-process, despite normally being used for synchronous process calls:
call-process is a built-in function in `C source code'.

(call-process PROGRAM &optional INFILE DESTINATION DISPLAY &rest ARGS)

[...]
Insert output in DESTINATION before point[...]0 means discard and don't wait
[...]
If DESTINATION is 0, `call-process' returns immediately with value nil.
[...]

