Exit GenServer registered with name

If a process implementing GenServer is registered with a name, like on the example below:

defmodule InfoSys.Cache do
  use GenServer

  def start_link(opts) do
    opts = Keyword.put(opts, :name, __MODULE__)
    GenServer.start_link(__MODULE__, opts, name: __MODULE__)


To send exist signal to such process, the pid of the currently registered instance needs to be passed to Process.exist function. To find this pid GenServer.whereis can be used. The whole snippet will look as follows:

InfoSyc.Cache |> GenServer.whereis() |> Process.exit(:kill)