zoukankan      html  css  js  c++  java
  • 发掘odoo.cli.server.Server的秘密,OpenERP的第三根线头儿

    command.py调用了server command

    在server.py中,主函数main使用了外层模块传递来的args

     1 def main(args):
     2     check_root_user()
     3     odoo.tools.config.parse_config(args)
     4     check_postgres_user()
     5     report_configuration()
     6 
     7     config = odoo.tools.config
     8 
     9     # the default limit for CSV fields in the module is 128KiB, which is not
    10     # quite sufficient to import images to store in attachment. 500MiB is a
    11     # bit overkill, but better safe than sorry I guess
    12     csv.field_size_limit(500 * 1024 * 1024)
    13 
    14     preload = []
    15     if config['db_name']:
    16         preload = config['db_name'].split(',')
    17         for db_name in preload:
    18             try:
    19                 odoo.service.db._create_empty_database(db_name)
    20             except odoo.service.db.DatabaseExists:
    21                 pass
    22 
    23     if config["translate_out"]:
    24         export_translation()
    25         sys.exit(0)
    26 
    27     if config["translate_in"]:
    28         import_translation()
    29         sys.exit(0)
    30 
    31     # This needs to be done now to ensure the use of the multiprocessing
    32     # signaling mecanism for registries loaded with -d
    33     if config['workers']:
    34         odoo.multi_process = True
    35 
    36     stop = config["stop_after_init"]
    37 
    38     setup_pid_file()
    39     rc = odoo.service.server.start(preload=preload, stop=stop)
    40     sys.exit(rc)

    其中line 2 check_root_user仅针对posix系统 暂时忽略

    1 def check_root_user():
    2     """Warn if the process's user is 'root' (on POSIX system)."""
    3     if os.name == 'posix':
    4         import pwd
    5         if pwd.getpwuid(os.getuid())[0] == 'root':
    6             sys.stderr.write("Running as user 'root' is a security risk.
    ")

     经过一些检查以后 line 39 调用了odoo.service.server.start()

    此函数启动了server,至此,server启动路径已经完成

  • 相关阅读:
    [Redis知识体系] 一文全面总结Redis知识体系
    MySQL数据导入到ClickHouse
    docker本地搭建clickhouse
    【linux】修改宝塔默认的PHP CLI版本
    windows 10 安装go环境
    docker安装centos8
    Bootstrap 简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
    C#调用WebService
    登录时,记住用户的帐号密码
    asp.net,cookie,写cookie,取cookie
  • 原文地址:https://www.cnblogs.com/qianheng/p/6240855.html
Copyright © 2011-2022 走看看