12.可配置默認(rèn)啟動(dòng)參數(shù).配置后以后啟動(dòng)則以默認(rèn)啟動(dòng)參數(shù)打開串口。如果您的程序是個(gè)守護(hù)進(jìn)程,那么也不要緊,我們 只要在別的終端下殺死m(xù)emcheck進(jìn)程(因?yàn)関algrind默認(rèn)使用memcheck工具,就是默認(rèn)參數(shù)—tools=memcheck):#killall memcheck這樣我們的程序(./a.out)就被kill了2.檢查代碼覆蓋和性能瓶頸:我們調(diào)用valgrind的工具執(zhí)行程序:#valgrind --tool=callgrind ./sec_infod會(huì)在當(dāng)前路徑下生成callgrind.out.pid(當(dāng)前生產(chǎn)的是callgrind.out.19689),如果我們想結(jié)束程序,可以:#killall callgrind然后我們看一下結(jié)果:#callgrind_annotate --auto=yes callgrind.out.19689 >log#vim log3.valgrind使用參數(shù) --log-fd=n 默認(rèn)情況下,輸出信息是到標(biāo)準(zhǔn)錯(cuò)誤stderr,也可以通過—log-fd=8,輸出到描述符為8的文件 --log-file=filename將輸出的信息寫入到filename.pid的文件里,pid是運(yùn)行程序的進(jìn)行id。b)從命令行運(yùn)行unity,并提供參數(shù)(這里參數(shù)“11”是隨意寫的,作用是讓mac啟動(dòng)一個(gè)新的進(jìn)程,末尾的“&”表示后臺(tái)啟動(dòng)進(jìn)程):。
tianfang > run &
[1] 11319
tianfang >
進(jìn)程切換到后臺(tái)的時(shí)候,我們把它稱為job。切換到后臺(tái)時(shí)會(huì)輸出相關(guān)job信息,以前面的輸出為[1] 11319例:[1]表示job ID是1,11319表示進(jìn)程ID是11319linux命令。
切換到后臺(tái)的進(jìn)程,仍然可以用ps命令查看:
tianfang > ps
PID TTY TIME CMD
5170 pts/3 00:00:00 bash
11319 pts/3 00:00:00 run
11320 pts/3 00:00:00 ps
tianfang >
可以通過jobs命令只查看所有job(后臺(tái)進(jìn)程):
tianfang > jobs
[1]+ Done run
tianfang >
前后臺(tái)間切換
可以通過bg <jobid>(background)和fg<jobid>(foreground)命令將其在前后臺(tái)間狀態(tài)切換。例如,對(duì)于一個(gè)前臺(tái)執(zhí)行的進(jìn)程,可以通過Ctrl+Z命令將其切換到后臺(tái),但此時(shí)是進(jìn)程被掛起了:
tianfang > run
^Z
[1]+Stoppedrun
此時(shí)通過bg就可以讓其繼續(xù)執(zhí)行:
tianfang > bg 1
[1]+ run &
tianfang >
在后臺(tái)執(zhí)行后,又可以通過fg命令將其切換回前臺(tái):
tianfang > fg 1
run
^C
tianfang >
Shell退出后進(jìn)程繼續(xù)執(zhí)行
當(dāng)Shell退出后,該Shell下運(yùn)行的job會(huì)收到SIGHUB信號(hào),進(jìn)而使其退出。然而,很多時(shí)候,我們不想讓其長(zhǎng)期運(yùn)行,不想受到Shell退出的影響。一種方式就是通過disown-h<psID>命令,讓特定job忽略SIGHUB信號(hào)
tianfang > run &
[1]24582
tianfang > disown -h24582
tianfang >
由于需要?jiǎng)討B(tài)的進(jìn)程號(hào)作為參數(shù),要用腳本運(yùn)行的話,則可以通過%1來獲取這個(gè)進(jìn)程號(hào):