Async_shell WARNING: The use of this library in new projects is discouraged; consider using Async.Process instead. This library has some gotchas, such as being unable to return the full output of a command (see the ?tail_len argument to Low_level_process.run).