現在位置: ホーム Documents ソフトウェア環境

ソフトウェア環境

Linuxシステムあるいはソフトウェア的な環境 / Software environment of Linux or other layers
(verified 2010 Feb. / EOS 4.3.0 / DCS-7120T-4S 03.01)

プロセス

ps でプロセスが普通に見える。
[admin@localhost /]$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Feb06 ?        00:00:20 /sbin/init
root         2     0  0 Feb06 ?        00:00:00 [kthreadd]
root         3     2  0 Feb06 ?        00:00:01 [migration/0]
root         4     2  0 Feb06 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 Feb06 ?        00:00:00 [watchdog/0]
root         6     2  0 Feb06 ?        00:00:00 [migration/1]
root         7     2  0 Feb06 ?        00:00:00 [ksoftirqd/1]
root         8     2  0 Feb06 ?        00:00:00 [watchdog/1]
root         9     2  0 Feb06 ?        00:00:00 [events/0]
root        10     2  0 Feb06 ?        00:00:01 [events/1]
root        11     2  0 Feb06 ?        00:00:00 [work_on_cpu/0]
root        12     2  0 Feb06 ?        00:00:00 [work_on_cpu/1]
root        13     2  0 Feb06 ?        00:00:15 [khelper]
root       102     2  0 Feb06 ?        00:00:00 [kblockd/0]
root       103     2  0 Feb06 ?        00:00:00 [kblockd/1]
root       108     2  0 Feb06 ?        00:00:00 [ata/0]
root       109     2  0 Feb06 ?        00:00:00 [ata/1]
root       110     2  0 Feb06 ?        00:00:00 [ata_aux]
.....
root      1474     1  0 Feb06 ?        00:00:00 ProcMgr-mast
root      1478  1474  0 Feb06 ?        01:29:39 ProcMgr-work
root      1492  1478  0 Feb06 ?        00:01:13 Launcher
root      1493  1478  0 Feb06 ?        01:12:50 Sysdb --conf
.....
root      1608     1  0 Feb06 ?        00:00:42 rsyslogd -c 3
root      1693     1  0 Feb06 ?        00:02:03 /usr/sbin/sshd
root      1719     1  0 Feb06 ?        00:00:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
(.... 以下略)
プロセスリストで中間あたりに Python スクリプトによるサービスプログラム群あり。
ProcMgr-mast
ProcMgr-work
Launcher
Sysdb --conf
などなど。このあたりで各種機能を実現している。

実体

これらの実体は /usr/bin 以下にある。
例えば Thermostat を見る。
bash-3.2# cat /usr/bin/Thermostat
#!/usr/bin/env python
# Copyright (c) 2006 Arista Networks, Inc.  All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.
import Fwk, Agent, Thermostat
def main():
thermostatContainer = Agent.AgentContainer( [ Thermostat.Thermostat ] )
thermostatContainer.runAgents()
if __name__ == "__main__":
main()
bash-3.2#
これは単に Thermostat クラスを読み込み、起動しているだけ。
エージェントの本体、Thermostat クラスなどは以下にある。
bash-3.2# head /usr/lib/python2.5/site-packages/Thermostat.py
# Copyright (c) 2006, 2007, 2008, 2009 Arista Networks, Inc.  All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.
""" The Thermostat Agent is responsible for monitoring and
regulating the temperature and cooling of the system. """
import Fwk, Agent, EntityMib
import weakref, os
import Tracing
(.... 以下略)

ディレクトリリスト

/usr/bin/[A-Z]* Cli (login shell)や EosInit など特殊なコマンドあり
/usr/lib/python2.5/site-packages/*.py 主たる Python コード置き場
/usr/lib/python2.5/site-packages/CliPlugin/*.py EOS shell からの実行コマンド群の実体
/usr/lib/tacc/map.d/ よくわからないがどのようなライブラリを使っているか見える?マップ

気になるファイル

/etc/Eos-release バージョン
/etc/nsswitch.conf.Eos
/etc/pam.d/login.Eos
/etc/profile.d/Eos.sh
/etc/rc.d/init.d/EosStage1 と 2
/etc/sysconfig/iptables-config.Eos
/var/log/eos
/var/log/eos-console
/var/log/EosInit
タグ: