1. & 最經常被用到
這個用在一個命令的最後,可以把這個命令放到後臺執行
2. ctrl + z
可以將一個正在前臺執行的命令放到後臺,並且暫停
3. jobs
查看當前有多少在後臺運行的命令
4. fg
將後臺中的命令調至前臺繼續運行
如果後臺中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後臺正在執行的命令的序號(不是pid)
1. jobs列舉出後臺作業信息。([作業號] 運行狀態 作業名稱)
2. ctrl+z 將任務放到後臺去,並暫停;
3. bg <%int> 將後臺任務喚醒,在後臺運行;
4. fg <%int> 將後任務的程序放到前臺;
1. ctrl+z 將任務放到後臺去,並暫停.
主進程waitpid(pid,&status,WUNTRACED)時,子進程
退出時,父進程被喚醒
kill(pid,SIGCONT);
kill(pid,SIGCONT);
waitpid(pid,&status,WUNTRACED);
{
int pid=0;
if(p!=NULL)
{
pid=atol(p);
kill(pid,SIGSTOP);
kill(pid,SIGCONT);
waitpid(pid,NULL,NULL);
pid_jobs[jobs_num--]=0;
}
else
printf("error \n");
return 0;
}
{
int pid=0;
if(p!=NULL)
{
pid=atol(p);
kill(pid,SIGCONT);
pid_jobs[jobs_num--]=0;
}
else
printf("error \n");
return 0;
}
//可見,後臺運行與前臺運行的區別只在於前臺運行等待子進程的退出而阻塞父進程操作。而後臺運行時,可以在父進程中輸入命令繼續其他操作。本質上沒有區別,都是給子進程發送SIGCONT信號