Skip to content

v0.5.0

Choose a tag to compare

@fhunleth fhunleth released this 03 Sep 17:04

This update contains many changes throughout. If you're using cgroups, please
review the changes as they likely affect your code. For those upgrading from v0.5.0-rc.0,
the only change is in italics below for how the exit status is set for commands exiting due to
signals.

  • New features

    • Added :cgroup_base. The preferred way of using cgroups now is for MuonTrap
      to create a sub-cgroup for running the command. This removes the need to
      keep track of cgroup paths on your own when you run more than one command at
      a time. :cgroup_path is still available.
    • Almost all inconsistencies between MuonTrap.Daemon and MuonTrap.cmd/3 have
      been fixed. As a result, MuonTrap.Daemon detects and raises more exceptions
      than previous. It is possible that code that worked before will now break.
    • MuonTrap.Daemon sets its exit status based on the process's exit code.
      Successful exit codes (exit code 0) exit :normal and failed exit codes
      (anything else) do not. This makes it possible to use the Supervisor
      :temporary restart strategy that only restarts failures.
    • MuonTrap.Daemon supports a :name parameter for setting GenServer names.
    • MuonTrap.Daemon cgget and cgset helpers return ok/error tuples now since
      it was too easy to accidentally call them such that they'd raise.
  • Bug fixes

    • Forcefully killed processes would get stuck in a zombie state until the kill
      timeout expired due to a missing call to wait(2). This has been fixed.
    • Exit status of process killed by a signal reflects that. I.e., a process
      killed by a signal exits with a status of 128+signal.