亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
1234下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
樓主: teclimber
打印 上一主題 下一主題

linux下怎樣查看多線程程序的主線程pid? [復(fù)制鏈接]

論壇徽章:
0
11 [報(bào)告]
發(fā)表于 2011-06-10 14:46 |只看該作者
本帖最后由 teclimber 于 2011-06-10 14:51 編輯

回復(fù) 9# cokeboL


    getpid這個(gè)函數(shù)是獲得當(dāng)前進(jìn)程的pid。我現(xiàn)在要在另外一個(gè)進(jìn)程里獲得這個(gè)進(jìn)程的pid,并且通過(guò)kill殺死改進(jìn)程。說(shuō)的有點(diǎn)亂。舉個(gè)例子吧!
有個(gè)進(jìn)程名字叫A,同時(shí)還有一個(gè)進(jìn)程的名字叫B,進(jìn)程B要獲得進(jìn)程A的pid并且要通過(guò)kill結(jié)束進(jìn)程A。

   當(dāng)然如果進(jìn)程A不是多線程的話,我可以用pidof來(lái)獲得進(jìn)程A的pid。但是現(xiàn)在我的程序是個(gè)多線程的程序,我用pidof的時(shí)候,會(huì)有好幾個(gè)id,當(dāng)然這幾個(gè)id逐個(gè)kill的話也是可以殺死進(jìn)程A的,但是我想只是通過(guò)結(jié)束該進(jìn)程的主線程,從而來(lái)結(jié)束進(jìn)程。這樣就不用逐個(gè)kill了。
所以,我現(xiàn)在不知道該如何獲得該多線程的主線程的id

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
12 [報(bào)告]
發(fā)表于 2011-06-10 15:36 |只看該作者
回復(fù) 11# teclimber


    能貼帖代碼嗎?  越聽(tīng)越亂呢

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書(shū)徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
13 [報(bào)告]
發(fā)表于 2011-06-10 15:37 |只看該作者
回復(fù)  cokeboL


    getpid這個(gè)函數(shù)是獲得當(dāng)前進(jìn)程的pid。我現(xiàn)在要在另外一個(gè)進(jìn)程里獲得這個(gè)進(jìn)程的pid ...
teclimber 發(fā)表于 2011-06-10 14:46



    為什么我用pidof a.out只返回一個(gè)進(jìn)程ID(多線程程序,線程均未退出)。。。

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書(shū)徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
14 [報(bào)告]
發(fā)表于 2011-06-10 15:49 |只看該作者
本帖最后由 cokeboL 于 2011-06-10 15:51 編輯

回復(fù) 11# teclimber
  1. /*  pthread.c  */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <pthread.h>

  6. void *func1(void* v)
  7. {
  8.         printf("pthread 1 parent pid: %d\n", getpid());
  9.         while(1);
  10. }

  11. void *func2(void* v)
  12. {
  13.         printf("pthread 2 parent pid: %d\n", getpid());
  14.         while(1);
  15. }

  16. int main()
  17. {
  18.         pthread_t tid_1, tid_2;
  19.         pthread_create(&tid_1, 0, func1, 0);
  20.         pthread_create(&tid_2, 0, func2, 0);
  21.         pthread_join(tid_1, 0);
  22.         pthread_join(tid_2, 0);
  23. }
復(fù)制代碼
  1. /*  kill_pro.c  */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>

  5. int main()
  6. {
  7.         char *p = "kill -9 `pidof a.out`";
  8.         system(p);
  9. }
復(fù)制代碼
  1. [cokeboL@localhost practice]$ cc pthread.c -lpthread
  2. [cokeboL@localhost practice]$ a.out
  3. pthread 1 parent pid: 21050
  4. pthread 2 parent pid: 21050  //執(zhí)行kill_pro前
  5. 已殺死  //執(zhí)行kill_pro后

  6. [cokeboL@localhost practicvoi&
復(fù)制代碼
  1. [cokeboL@localhost practice]$ cc kill_pro.c -o kill_pro
  2. [cokeboL@localhost practice]$ kill_pro
復(fù)制代碼

論壇徽章:
0
15 [報(bào)告]
發(fā)表于 2011-06-10 17:02 |只看該作者
回復(fù) 12# crazyhadoop


    代碼沒(méi)辦法貼,最少有幾萬(wàn)行呢。

論壇徽章:
0
16 [報(bào)告]
發(fā)表于 2011-06-10 17:15 |只看該作者
回復(fù) 14# cokeboL


    你這個(gè)代碼我在linux虛擬機(jī)里試了,確實(shí)是只有一個(gè)pid.pidof a.out也只有一個(gè)pid.
但是當(dāng)我把他放到我的板子上運(yùn)行的時(shí)候,他就會(huì)有多個(gè)pid,pidof的時(shí)候會(huì)有四個(gè)id.我的板子是基于arm9的,跑linux。
還有一點(diǎn)就是很疑惑,三個(gè)線程怎么會(huì)有四個(gè)id呢?  我自己的程序也有這個(gè)情況,就是id的個(gè)數(shù)要比線程的個(gè)數(shù)多一個(gè)。

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書(shū)徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
17 [報(bào)告]
發(fā)表于 2011-06-10 17:22 |只看該作者
回復(fù)  cokeboL


    你這個(gè)代碼我在linux虛擬機(jī)里試了,確實(shí)是只有一個(gè)pid.pidof a.out也只有一個(gè)pid. ...
teclimber 發(fā)表于 2011-06-10 17:15



那可能是pidof的實(shí)現(xiàn)不同吧,主線程+創(chuàng)建的線程數(shù)?是在不行增加個(gè)自定義的系統(tǒng)調(diào)用,從內(nèi)核找到該名字的進(jìn)程pid然后殺掉吧,不過(guò)改內(nèi)核些東西,煩躁,我現(xiàn)在還沒(méi)太多時(shí)間學(xué)那個(gè),看wifi呢,樓主自己找點(diǎn)帖子改下吧,重編下內(nèi)核,或者寫個(gè)簡(jiǎn)單驅(qū)動(dòng)模塊加進(jìn)去也行。

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書(shū)徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
18 [報(bào)告]
發(fā)表于 2011-06-10 17:25 |只看該作者
暈,弄個(gè)進(jìn)程間通信,把pid傳過(guò)去也行啊

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
19 [報(bào)告]
發(fā)表于 2011-06-10 17:27 |只看該作者
回復(fù) 16# teclimber


    你寫的不會(huì)是多進(jìn)程吧。哈哈

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書(shū)徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
20 [報(bào)告]
發(fā)表于 2011-06-10 17:38 |只看該作者
回復(fù)  teclimber


    你寫的不會(huì)是多進(jìn)程吧。哈哈
crazyhadoop 發(fā)表于 2011-06-10 17:27



樓主用的班子上跑的是哪版的內(nèi)核?2.4的?2.4的內(nèi)核線程的實(shí)現(xiàn)其實(shí)是靠進(jìn)程的偽實(shí)現(xiàn),就是樓主說(shuō)的輕量級(jí)進(jìn)程(但2.6是真正意義上的線程,2.6內(nèi)核線程具體怎么實(shí)現(xiàn)、和進(jìn)程的區(qū)別我就不太懂了),有可能因此導(dǎo)致pidof會(huì)顯示出所有線程和主進(jìn)程的pid,或者pidof實(shí)現(xiàn)差異吧。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP