美文网首页
session_manager编译

session_manager编译

作者: 发条蛙 | 来源:发表于2017-10-26 16:34 被阅读0次

session_manager 用于管理Chrome进程的生命周期。通常位于目录login_manager下,并通过包chromeos-login安装。

安装包信息

ChromeOS的编译环境下查询chromeos-login的包信息如下:

$ emerge -s chromeos-login
Searching...    
[ Results for search key : chromeos-login ]
[ Applications found : 1 ]

*  chromeos-base/chromeos-login
      Latest version available: 0.0.2-r2839
      Latest version installed: [ Not Installed ]
      Size of files: 0 KiB
      Homepage:      http://www.chromium.org/
      Description:   Login manager for Chromium OS.
      License:       BSD-Google

而其所依赖的包信息如下:

$ emerge -p chromeos-login

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] app-arch/snappy-1.0.4  USE="-static-libs" 
[ebuild  N     ] sys-apps/keyutils-1.5.9-r3  USE="-static -static-libs {-test}" ABI_X86="(64) -32 (-x32)" 
[ebuild  N     ] chromeos-base/chromeos-config-tools-0.0.1-r248  USE="cros_host -asan -clang -cros-debug -profiling {-test}" 
[ebuild  N     ] chromeos-base/libchromeos-ui-0.0.1-r759  USE="cros_host -asan -clang -cros-debug -profiling {-test}" 
[ebuild  N     ] chromeos-base/libscrypt-1.1.6-r12  USE="cros_host -asan -clang -profiling -static-libs" 
[ebuild  N     ] dev-util/google-perftools-2.0-r2  USE="debug -largepages -minimal -static-libs {-test}" 
[ebuild  N     ] sys-fs/lvm2-2.02.97-r4  USE="lvm1 readline udev (-clvm) (-cman) -device-mapper-only -selinux -static -static-libs -thin" 
[ebuild  N     ] sys-fs/ecryptfs-utils-101  USE="python -doc -gpg -gtk -openssl -pam -pkcs11 -suid -tpm" 
[ebuild  N     ] dev-libs/leveldb-1.18-r1  USE="snappy tcmalloc -static-libs" 
[ebuild  N     ] app-crypt/trousers-0.3.3-r61  USE="cros_host -cros-debug -doc -profiling -systemd -tss_trace" 
[ebuild  N     ] chromeos-base/libcontainer-0.0.1-r534  USE="cros_host device-mapper -asan -clang -cros-debug -profiling {-test}" 
[ebuild  N     ] chromeos-base/chaps-0.0.1-r1945  USE="cros_host -asan -clang -cros-debug -profiling -systemd {-test} -tpm -tpm2" 
[ebuild  N     ] chromeos-base/cryptohome-0.0.1-r1731  USE="cros_host -asan -clang -cros-debug -direncryption -profiling -systemd {-test} -tpm -tpm2" 
[ebuild  N     ] chromeos-base/chromeos-login-0.0.2-r2839  USE="cros_host -asan -cheets -clang -cros-debug -profiling -systemd {-test} -unibuild" 

ebuild信息

chromeos-login对应的ebuild文件位于目录src/third_party/chromiumos-overlay/chromeos-base/chromeos-login下:

# tree .
.
├── chromeos-login-0.0.2-r2839.ebuild
├── chromeos-login-9999.ebuild
└── files
    └── chromeos-version.sh

1 directory, 3 files

由该配置文件可知最终编译出来的二进制文件位于/sbin/session_manager目录下。

再查阅其中的ebuild文件发现对应的工作目录为src/platform2,在该目录下稍作搜索可知,session_manager实现在目录src/platform2/login_manager中,对应的gyp配置文件为src/platform2/login_manager/login_manager.gyp,其中session_manager相关的内容如下:

    {
      'target_name': 'session_manager',
      'type': 'executable',
      'libraries': [
        '-lrootdev',
        '-lcontainer',
      ],
      'dependencies': ['libsession_manager'],
      'sources': ['session_manager_main.cc'],
    },

session_manager代码实现的具体细节,就可以跟随文件src/platform2/login_manager/session_manager_main.cc向下继续查看。

相关文章

  • session_manager编译

    session_manager 用于管理Chrome进程的生命周期。通常位于目录login_manager下,并通...

  • openGauss源码#session_manager

    session_manager负责管理所有会话,session_manager.h和session_manger....

  • session_manager简介

    session_manager 用于管理Chrome进程的生命周期。通常位于目录 login_manager 下,...

  • session_manager启动

    启动环境 session_manager在文件/etc/init/ui.conf中通过UpStart启动,具体启动...

  • dtb文件编译

    反编译 编译 批量反编译

  • 编译过程与静态库&动态库

    一、编译过程 1、预编译(Preprocessing) 预编译即预处理,编译器不能直接对预编译命令进行编译,必须在...

  • 宏、const、static、extern使用详解

    宏与const的区别 编译时刻:宏是预编译(编译之前处理),const是编译阶段。编译检查:宏不做检查,不会报编译...

  • iOS const 与宏

    编译时刻:宏是预编译(编译之前处理),const是编译阶段。 编译检查:宏不做检查,不会报编译错误,只是替换,co...

  • 2020-09-09 RK系统编译

    编译uboot: 编译kernel: 环境配置: 编译系统:

  • 程序编译过程

    本文编译的文件cpu架构为X86_64。 编译型语言编译过程主要有预编译、编译、汇编、链接。 预编译This st...

网友评论

      本文标题:session_manager编译

      本文链接:https://www.haomeiwen.com/subject/stfcpxtx.html