<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 進程 本小節將介紹兩方面內容——`process`(主進程)和`child_process`(子進程)。 [TOC] ## [process(主進程)](http://nodejs.cn/api/process.html) >`process `對象是一個` global `(全局變量),提供有關信息,控制當前 `NodeJs `進程。作為一個對象,它對于` NodeJs`應用程序始終是可用的,故無需使用 `require()`。 ### 常用屬性和方法 這里會簡單介紹`process`的常用屬性和方法,對于`NodeJs`中文網已經做了詳盡翻譯的,這只是以超鏈接的方式提供,你可以直接點擊跳轉。 #### process.argv **`process.argv`屬性返回一個數組,該數組包含當`NodeJs`進程啟動時,命令行傳遞到進程的參數。數組的第一個元素是*[process.execPath](http://nodejs.cn/api/process.html#process_process_execpath)*返回的結果(即執行`NodeJs`進程的執行程序的絕對路徑名稱,如`/usr/local/bin/node`),數組的第二個元素是被執行文件的名稱,剩下的元素可以是任何命令行參數(用戶可以自定義)** * `process.argv` * `<Array>` 例子: ~~~ //index.js // 遍歷并打印process.argv process.argv.forEach(function(val, index) { console.log(index + ':' + val) }); ~~~ 上面的例子我們把代碼寫在`index.js`文件中,現在我們打開命令行,使用下面的命令啟動`NodeJs`進程: ~~~ $ node index.js one two=three four ~~~ 回車運行,命令行輸出下面的結果: ~~~ 0: /usr/local/bin/node 1: /Users/outsider/develop/node/process/index.js 2: one 3: two=three 4: four ~~~ 其中,數組第一個元素`process.argv[0]=“/usr/local/bin/node”`,這是我電腦上`node`執行程序的路徑,數組的第二個元素`process.argv[1]=“/Users/outsider/develop/node/process/index.js”`是`index.js`文件的路徑 #### process.chdir(directory) **將`NodeJs`進程當前工作目錄切換為目標目錄,和你在命令行使用`cd directory`一樣效果,如果目標目錄不存在,則拋出異常。** * ` process.chdir(directory)` * `directory <String>`:目標目錄路徑 #### process.cwd() **獲取當前`NodeJs`進程所在的工作目錄** * `process.cwd()` * `Returns: <String>`:返回當前`NodeJs`進程所在的工作目錄 #### process.exit([code]) **調用`process.exit()`方法可以強制結束當前`NodeJs`進程。** * `process.exit([code])` * `code <Integer> `:進程退出碼,默認值是0,即正常退出 >Note: 一般情況下,我們不會主動調用`process.exit()`,這是因為一旦調用`process.exit()`方法,`NodeJs`進程會以最快的速度響應退出進程的指令,即使現在`NodeJs`進程中還有一些異步程序沒執行完成,也不會等它執行完。 在程序開發過程中,很多時候,我們需要表達程序是非正常退出的,這個時候我們向程序調用者輸出各種標志信息。官網建議我們通過以下兩種方式實現 1.直接設置`process.exitCode`(即進程退出碼),然后返回。 2.拋出一個異常 #### process.pid **每個進程啟動的時候`NodeJs`都會分配為其一個唯一的進程ID。** * ` process.pid` * ` <Integer>`:進程ID(整形數據) >一種應用場景: 假如你用`NodeJs`寫了一個服務程序,服務器啟動之后,你又寫了一個守護程序保活,如果服務器程序由于未知原因掛起了,并且過了預設時間仍然沒有恢復,這時,你就可以強制關閉該進程,開啟一個新的進程。這個過程,你需要先記住服務進程的`pid`,然后在需要的時候調用`process.kill(pid)`殺掉指定進程。 #### process.kill(pid[, signal]) **殺死指定`pid`的進程,如果該`pid`不存在,則拋出異常** * ` process.kill(pid[, signal])` * ` pid <number>`:一個進程ID * `signal <String> | <number>`:傳遞到指定`pid`進程的信號信息。默認值是”SIGTERM“ #### process.platform **`process.platform`屬性將返回系統的標識符**,比如:`'darwin', 'freebsd', 'linux', 'sunos' or 'win32'`,這個屬性可以用于判斷當前`NodeJs`進程運行在哪個系統上。 * ` process.platform` * ` <String>`:當前系統的標識符。 #### [process.stderr](http://nodejs.cn/api/process.html#process_process_stderr) #### [process.stdin](http://nodejs.cn/api/process.html#process_process_stdin) #### [process.stdout](http://nodejs.cn/api/process.html#process_process_stdout) ## [child_process(子進程)](http://nodejs.cn/api/child_process.html#child_process_child_process) >`child_process `模塊提供了衍生子進程的能力 `child_process `模塊很重要,他是命令行腳本程序開發必不可少的一環,有了`child_process`你可以在主程序中,開啟一個新的進程,執行其他程序任務。 `NodeJs`中文網提供了較為完整的`API`翻譯,所以,這里不再贅述。 `child_process`需要重點關注以下兩個方法: 1. [spawn](http://nodejs.cn/api/child_process.html#child_process_child_process_spawn_command_args_options) 2. [execFileSync](http://nodejs.cn/api/child_process.html#child_process_child_process_execfilesync_file_args_options) >Tips: `child_process`一章的閱讀可以適當囫圇吞棗,下一小節,我們將介紹`shelljs`——`child_process`的一個封裝模塊,處理子進程相當簡單。 ## process和child_process API地址: **process中文網地址:http://nodejs.cn/api/process.html** **child_porcess中文網地址:http://nodejs.cn/api/child_process.html**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看