Search code examples
erlangmnesia

mnesia save out info


how to save mnesia:info() output?

I use remote sh in unix screen and can't to scroll window


Solution

  • Here's a function that you can put in the user_default.erl module on the remote node:

      out(Fun, File) ->
        G = erlang:group_leader(),
        {ok, FD} = file:open(File, [write]),
        erlang:group_leader(FD, self()),
        Fun(),
        erlang:group_leader(G, self()),
        file:close(FD).
    

    Then, you can do the following (after recompiling and loading user_default):

      1> out(fun () -> mnesia:info() end, "mnesia_info.txt").
    

    Or, just cut-and paste the following into the shell:

      F = fun (Fun, File) ->
            G = erlang:group_leader(),
            {ok, FD} = file:open(File, [write]),
            erlang:group_leader(FD, self()),
            Fun(),
            erlang:group_leader(G, self()),
            file:close(FD)
          end,
      F(fun () -> mnesia:info() end, "mnesia_info.txt").