abstract [This is the script that will start the FullPLiant operating system services.]
module "/pliant/language/context.pli" module "/pliant/language/stream.pli" module "/pliant/admin/file.pli" module "/pliant/fullpliant/this_computer.pli"
function log (var Stream log) open "file:/log/pliant.log" append+safe log writeline "run "+string:datetime (var Stream err) open "file:/tmp/console" in+safe while not err:atend log writeline " "+err:readline err close ; log close file_delete"file:/tmp/console" log
if (constant this_computer:env:"kernel":"make":"CONFIG_ISDN"="y" or this_computer:env:"kernel":"make":"CONFIG_ISDN"="m") module "/pliant/linux/network/isdn.pli"
function clean_tmp_directory var Array:FileInfo files := file_list "file:/tmp/" standard for (var Int i) 0 files:size-1 if (files:i:name_without_path parse "pliant_" any) if files:i:is_directory file_tree_delete files:i:name else file_delete files:i:name clean_tmp_directory
gvar Str precompile := ""
if (constant this_computer:env:"pliant":"dns":"service"="true") precompile += "/pliant/protocol/dns/server.pli[lf]" module "/pliant/protocol/dns/server.pli"
|
dns_server cache this_computer:env:"pliant":"dns":"cache" detached
|
dns_server cache this_computer:env:"pliant":"dns":"cache" default this_computer:env:"pliant":"dns":"default" detached
|
if (constant this_computer:env:"pliant":"mail":"smtp_service"="true") precompile += "/pliant/protocol/smtp/server.pli[lf]" module "/pliant/protocol/smtp/server.pli" smtp_server detached
if (constant this_computer:env:"pliant":"mail":"pop3_service"="true") precompile += "/pliant/protocol/pop3/server.pli[lf]" module "/pliant/protocol/pop3/server.pli" pop3_server detached
if (constant this_computer:env:"pliant":"mail":"redirect_service"="true") precompile += "/pliant/protocol/smtp/redirect.pli[lf]" module "/pliant/protocol/smtp/redirect.pli" redirect_mails console "Mailboxes redirection daemon is running." eol
if (constant this_computer:env:"pliant":"ftp":"service"="true") precompile += "/pliant/protocol/ftp/server.pli[lf]" module "/pliant/protocol/ftp/server.pli" ftp_server detached
if (constant this_computer:env:"pliant":"remote":"service"="true") precompile += "/pliant/util/remote/server.pli[lf]" module "/pliant/util/remote/server.pli"
if (constant this_computer:env:"pliant":"lpr":"service"="true") precompile += "/pliant/protocol/lpr/server.pli[lf]" module "/pliant/protocol/lpr/server.pli" lpr_server detached eif (constant this_computer:env:"printer":size>0) precompile += "/pliant/protocol/lpr/spool.pli[lf]" module "/pliant/protocol/lpr/spool.pli" lpr_spool console "Print spooler is now running." eol
if (constant os_api="linux" and (exists this_computer:env:"logical")) precompile += "/pliant/fullpliant/logical.pli[lf]" module "/pliant/fullpliant/logical.pli"
if (constant this_computer:env:"pliant":"system":"medium"="cdrom") module "recover.pli"
precompile += "/pliant/protocol/http/server.pli[lf]" module "/pliant/protocol/http/server.pli"
function run_custom safe plugin run failure err (var Stream log) open "file:/tmp/run.log" out+safe log writeline err run_custom
precompile += "/pliant/language/debug/log_database.pli[lf]" module "/pliant/language/debug/log_database.pli" if (constant log_database:data:file:size>0) precompile += "/pliant/language/debug/trace.pli[lf]" precompile += "/pliant/language/debug/log.pli[lf]" module "/pliant/language/debug/trace.pli" module "/pliant/language/debug/log.pli" function run_log each f log_database:data:file trace_log keyof:f f:file f:mini_mb*2n^20 f:maxi_mb*2n^20 trace_memory := log_database:data:memory run_log
function run_dynamic_servers if (constant this_computer:env:"pliant":"remote":"service"="true") remote_server detached if not (this_computer:env:"pliant":"http":"port" parse (gvar Int port)) port := 80 if (constant this_computer:env:"pliant":"system":"medium"="cdrom") thread sleep 15 recover_menu http_server port port secured log this_computer:env:"pliant":"http":"log" sleep 15 this_computer "pliant" "language" "recommended" := precompile run_dynamic_servers
|