session_manager編譯

session_manager 用于管理Chrome進(jìn)程的生命周期。通常位于目錄login_manager下,并通過包chromeos-login安裝。

安裝包信息

ChromeOS的編譯環(huán)境下查詢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對應(yīng)的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

由該配置文件可知最終編譯出來的二進(jìn)制文件位于/sbin/session_manager目錄下。

再查閱其中的ebuild文件發(fā)現(xiàn)對應(yīng)的工作目錄為src/platform2,在該目錄下稍作搜索可知,session_manager實現(xiàn)在目錄src/platform2/login_manager中,對應(yīng)的gyp配置文件為src/platform2/login_manager/login_manager.gyp,其中session_manager相關(guān)的內(nèi)容如下:

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

session_manager代碼實現(xiàn)的具體細(xì)節(jié),就可以跟隨文件src/platform2/login_manager/session_manager_main.cc向下繼續(xù)查看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,804評論 9 468
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • 啟動環(huán)境 session_manager在文件/etc/init/ui.conf中通過UpStart啟動,具體啟動...
    發(fā)條蛙閱讀 1,648評論 0 1
  • session_manager 用于管理Chrome進(jìn)程的生命周期。通常位于目錄 login_manager 下,...
    發(fā)條蛙閱讀 2,773評論 0 0
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 6,088評論 1 13

友情鏈接更多精彩內(nèi)容