RYU代碼分析-啟動

啟動方式

$ ryu-manager ofctl_rest.py simple_siwtch_13.py
$ whereis ryu-manager
ryu-manager: /usr/local/bin/ryu-manager

$ vim /usr/local/bin/ryu-manager

#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'ryu==4.32','console_scripts','ryu-manager'
__requires__ = 'ryu==4.32'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('ryu==4.32', 'console_scripts', 'ryu-manager')()
    )
# 說明
# load_entry_point 方法根據(jù) ryu-4.3.2.dist-info/entry_points.txt 文件加載
# ryu-manager 是 ryu.cmd.manager.py 中main方法的short name袋马,
# 所以最終執(zhí)行的是 ryu.cmd.manager.py 的main方法
 
圖片.png

ryu.cmd.manager.py 的 main方法


def main(args=None, prog=None):
    # 解析 命令行 $ ryu-manager ofctl_rest.py simple_siwtch_13.py
    # 中的參數(shù)
    _parse_user_flags()   

    try:
        CONF(args=args, prog=prog,
             project='ryu', version='ryu-manager %s' % version,
            # 配置文件的位置
             default_config_files=['/usr/local/etc/ryu/ryu.conf'])  
    except cfg.ConfigFilesNotFoundError:
        CONF(args=args, prog=prog,
             project='ryu', version='ryu-manager %s' % version)

    log.init_log()
    logger = logging.getLogger(__name__)

    if CONF.enable_debugger:
        msg = 'debugging is available (--enable-debugger option is turned on)'
        logger.info(msg)
    else:
        hub.patch(thread=True)

    if CONF.pid_file:
        with open(CONF.pid_file, 'w') as pid_file:
            pid_file.write(str(os.getpid()))

    app_lists = CONF.app_lists + CONF.app
    # keep old behavior, run ofp if no application is specified.
    if not app_lists:
        app_lists = [
            'ryu.controller.ofp_handler',  # 默認必須加載的文件
           # 我們可以自己把需要加載的文件寫在這里,
          # 這樣啟動里可以直接執(zhí)行 python3  ryu.cmd.manager.py 
            '../app/simple_switch_13.py' 
        ]

    app_mgr = AppManager.get_instance()
    app_mgr.load_apps(app_lists)
    contexts = app_mgr.create_contexts()
    services = []
    services.extend(app_mgr.instantiate_apps(**contexts))

    webapp = wsgi.start_service(app_mgr)
    if webapp:
        thr = hub.spawn(webapp)
        services.append(thr)

    try:
        hub.joinall(services)
    except KeyboardInterrupt:
        logger.debug("Keyboard Interrupt received. "
                     "Closing RYU application manager...")
    finally:
        app_mgr.close()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裕膀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子持际,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舷嗡,死亡現(xiàn)場離奇詭異,居然都是意外死亡莉钙,警方通過查閱死者的電腦和手機廓脆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磁玉,“玉大人停忿,你說我怎么就攤上這事∥蒙。” “怎么了席赂?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長时迫。 經(jīng)常有香客問我氧枣,道長,這世上最難降的妖魔是什么别垮? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任便监,我火速辦了婚禮,結(jié)果婚禮上碳想,老公的妹妹穿的比我還像新娘烧董。我一直安慰自己,他們只是感情好胧奔,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布逊移。 她就那樣靜靜地躺著,像睡著了一般龙填。 火紅的嫁衣襯著肌膚如雪胳泉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天岩遗,我揣著相機與錄音扇商,去河邊找鬼。 笑死宿礁,一個胖子當著我的面吹牛案铺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梆靖,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼控汉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了返吻?” 一聲冷哼從身側(cè)響起姑子,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎测僵,沒想到半個月后街佑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年舆乔,在試婚紗的時候發(fā)現(xiàn)自己被綠了岳服。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剂公。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡希俩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纲辽,到底是詐尸還是另有隱情颜武,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布拖吼,位于F島的核電站鳞上,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吊档。R本人自食惡果不足惜篙议,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怠硼。 院中可真熱鬧鬼贱,春花似錦、人聲如沸香璃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葡秒。三九已至姻乓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間眯牧,已是汗流浹背蹋岩。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留学少,地道東北人星澳。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像旱易,于是被迫代替她去往敵國和親禁偎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一阀坏、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,744評論 0 10
  • 1.什么是監(jiān)控 2.為什么要做監(jiān)控 系統(tǒng)為什么要做監(jiān)控:監(jiān)控是整個運維乃至整個產(chǎn)品生命周期中最重要的一環(huán).事前及時...
    Gq趙閱讀 977評論 0 0
  • RYU簡介 Ryu是一個基于組件的軟件定義網(wǎng)絡(luò)框架如暖。Ryu為軟件組件提供定義良好的API,使開發(fā)人員可以輕松創(chuàng)建新...
    CC_06fa閱讀 816評論 0 1
  • 久違的晴天忌堂,家長會盒至。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗枷遂。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,523評論 16 22
  • 創(chuàng)業(yè)是很多人的夢想樱衷,多少人為了理想和不甘選擇了創(chuàng)業(yè)來實現(xiàn)自我價值,我就是其中一個酒唉。 創(chuàng)業(yè)后矩桂,我由女人變成了超人,什...
    亦寶寶閱讀 1,810評論 4 1