~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

Viewing changes to lib/kernel/src/kernel.erl

  • Committer: Bazaar Package Importer
  • Author(s): Erlang Packagers, Sergei Golovan
  • Date: 2006-12-03 17:07:44 UTC
  • mfrom: (2.1.11 feisty)
  • Revision ID: james.westby@ubuntu.com-20061203170744-rghjwupacqlzs6kv
Tags: 1:11.b.2-4
[ Sergei Golovan ]
Fixed erlang-base and erlang-base-hipe prerm scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
%%
18
18
-module(kernel).
19
19
 
20
 
-behaviour(application).
21
20
-behaviour(supervisor).
22
21
 
23
22
%% External exports
97
96
 
98
97
init([]) ->
99
98
    SupFlags = {one_for_all, 0, 1},
 
99
 
100
100
    Config = {kernel_config,
101
101
              {kernel_config, start_link, []},
102
102
              permanent, 2000, worker, [kernel_config]},
107
107
            {file_server, start_link, []},
108
108
            permanent, 2000, worker, 
109
109
            [file, file_server, file_io_server, prim_file]},
110
 
    OldFile = {file_server,
111
 
               {old_file_server, start_link, []},
112
 
               permanent, 2000, worker, [old_file_server]},
113
110
    User = {user,
114
111
            {user_sup, start, []},
115
112
            temporary, 2000, supervisor, [user_sup]},
116
 
    Rpc = {rex, {rpc, start_link, []}, permanent, 2000, worker, [rpc]},
117
 
    Global = {global_name_server, {global, start_link, []}, permanent, 2000,
118
 
              worker, [global]},
119
 
    Glo_grp = {global_group,{global_group,start_link,[]},permanent,2000,
120
 
               worker,[global_group]},
121
 
    InetDb = {inet_db, {inet_db, start_link, []},
122
 
              permanent, 2000, worker, [inet_db]},
123
 
    NetSup = {net_sup, {erl_distribution, start_link, []}, permanent,
124
 
              infinity, supervisor,[erl_distribution]},
125
 
    DistAC = start_dist_ac(),
126
 
    Ddll = start_ddll(),
127
 
    Timer = start_timer(),
128
 
    config_zombies(),
129
 
    SafeSupervisor = {kernel_safe_sup,
130
 
                      {supervisor, start_link,
131
 
                       [{local, kernel_safe_sup}, ?MODULE, safe]},
132
 
                      permanent, infinity, supervisor, [?MODULE]},
133
 
    {ok, {SupFlags,
134
 
          [Rpc, Global, InetDb | DistAC] ++ 
135
 
          [NetSup, Glo_grp, File, OldFile, Code, 
136
 
           User, Config, SafeSupervisor] ++
137
 
          Ddll ++ Timer}};
 
113
    
 
114
    case init:get_argument(mode) of
 
115
        {ok, [["minimal"]]} ->
 
116
 
 
117
            SafeSupervisor = {kernel_safe_sup,
 
118
                              {supervisor, start_link,
 
119
                               [{local, kernel_safe_sup}, ?MODULE, safe]},
 
120
                              permanent, infinity, supervisor, [?MODULE]},
 
121
 
 
122
            {ok, {SupFlags,
 
123
                  [File, Code, User,
 
124
                   Config, SafeSupervisor]}};
 
125
        _ ->
 
126
            Rpc = {rex, {rpc, start_link, []}, 
 
127
                   permanent, 2000, worker, [rpc]},
 
128
            Global = {global_name_server, {global, start_link, []}, 
 
129
                      permanent, 2000, worker, [global]},
 
130
            Glo_grp = {global_group, {global_group,start_link,[]},
 
131
                       permanent, 2000, worker, [global_group]},
 
132
            InetDb = {inet_db, {inet_db, start_link, []},
 
133
                      permanent, 2000, worker, [inet_db]},
 
134
            NetSup = {net_sup, {erl_distribution, start_link, []}, 
 
135
                      permanent, infinity, supervisor,[erl_distribution]},
 
136
            DistAC = start_dist_ac(),
 
137
 
 
138
            Timer = start_timer(),
 
139
 
 
140
            SafeSupervisor = {kernel_safe_sup,
 
141
                              {supervisor, start_link,
 
142
                               [{local, kernel_safe_sup}, ?MODULE, safe]},
 
143
                              permanent, infinity, supervisor, [?MODULE]},          
 
144
 
 
145
            {ok, {SupFlags,
 
146
                  [Rpc, Global, InetDb | DistAC] ++ 
 
147
                  [NetSup, Glo_grp, File, Code, 
 
148
                   User, Config, SafeSupervisor] ++ Timer}}
 
149
    end;
138
150
 
139
151
init(safe) ->
140
152
    SupFlags = {one_for_one, 4, 3600},
143
155
    Pg2 = start_pg2(),
144
156
    {ok, {SupFlags, Boot ++ DiskLog ++ Pg2}}.
145
157
 
146
 
config_zombies() ->
147
 
    case application:get_env(kernel, keep_zombies) of
148
 
        {ok, N} when integer(N) ->
149
 
            erlang:system_flag(keep_zombies, N);
150
 
        _ ->
151
 
            ok
152
 
    end.
153
 
 
154
158
get_code_args() ->
155
159
    case init:get_argument(nostick) of
156
160
        {ok, [[]]} -> [[nostick]];
169
173
            end
170
174
    end.
171
175
 
172
 
start_ddll() ->
173
 
    case application:get_env(kernel, start_ddll) of
174
 
        {ok, true} ->
175
 
            [{ddll_server, {erl_ddll, start_link, []}, permanent, 1000,
176
 
              worker, [erl_ddll]}];
177
 
        _ ->
178
 
            []
179
 
    end.
180
 
 
181
176
start_boot_server() ->
182
177
    case application:get_env(kernel, start_boot_server) of
183
178
        {ok, true} ->