linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸
来源:互联网 发布:阿里云oss退款 编辑:程序博客网 时间:2024/05/16 05:34
一、程序存储
经常被问到进程与线程的区别,今天有人问程序与进程的区别,一下子还真没反应过来 。程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。反映了一个程序在一定的数据集上运行的全部动态过程。
二、crontab
基本格式 :
* * * * * command
分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
在终端输入:crontab -e
然后编辑内容为:* * 9 10 0 echo "now the time is .... `date` " >>/home/fsy/io/tempfile
查看:crontab -l
删除:crontab -r
三、关于fork 进程的补充
1、用重定向方式输出时应该注意:调用fork的程序,会完全复制一个父进程。所以也会复制一个缓冲区,及如果父进程在缓冲区中有内容,则子进程也会一并获得。那为什么对文件的读写不是两个文件呢?因为子进程复制的是文件标示符,转成文件指针会指向同一个文件。
2、fork用于父子进程同时指行不同的代码段,比如网络服务进程。或用于要执行一个不同的程序,通常是子进程从fork返回后立即调用exec。
3、vfrok()不复制父进程的地址空间。子进程一定是先运行。在调用exec/exit之前,它在父进程的空间中运行。
四、exec族
函数还真多,就是功能都一样。一大家子人,长的还差不多,只能干一样事。这存在感,真服了
个人感觉记住一个就行:execlp("ls","ls","-l",NULL);
错误判断:
errno=ENOENT 找不到文件或路径
errno=EFAULT argv/envp忘记用NULL结束
errno=EACCES 没有运行权限
五、exit()与_exit()
最好使用exit()退出程序。因为会清空缓存。exit()在<stdlib.h>中。_exit()在<unistd.h>中。中间的参数,可以用wait系统调用接收子进程返回值。
六、wait与waitpid()
wait()使父进程阻塞直到子进程结束才返回。wait()是waitpid()的一个特例。所以waitpid()更牛一些~
通常说来waitpid(),用于等待一个特定的子进程。调用方法为:waitpid(pid1, &stu, WNOHANG) 或者 waitpid(pid1, NULL, 0)
七、孤儿与僵尸(进程)
这个...不知道是作者有才,还是翻译有思想,弄出了这么俩词
父进程先死了,子进程就是孤儿了。但是别担心,咱是和 *谐社会,怎么能有孤儿呢?所以马上有个大爹——init 收养这些没人要的进程。
要是子进程先死了,父进程没回收子进程,那他就成了孤魂野鬼。也就变僵尸了 所以父进程要收尸啊...... 这个也好解决。收尸其实也不费劲,调用wait()/waitpid()就行。这个到处都是僵尸,对社会的安定团结还是有很大影响的。系统所能使用的进程号是有限的,子进程不回收,虽然不占内存了,但是进程号还占着,僵尸多了,正常的子进程就没有进程号了......
- linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸
- linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸
- .linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸 文件读写 文件锁、select、poll
- linux进程(fork/vfork)与wait/waitpid
- Linux学习之进程fork()、exec、exit()/_exit()、wait()/waitpid
- 进程创建fork与vfork,孤儿进程,僵尸进程
- linux系统编程之进程(四):wait/waitpid函数与僵尸进程、fork 2 times
- linux系统编程之进程(四):wait/waitpid函数与僵尸进程、fork 2 times
- (二十五)进程——wait与waitpid、僵尸进程与孤儿进程
- 进程编程中的孤儿和僵尸进程--wait/waitpid函数
- 进程 fork exec,wait/waitpid
- UNIX高级环境编程(9)进程控制(Process Control)- fork,vfork,僵尸进程,wait和waitpid
- 进程控制开发[fork() exec exit _exit wait waitpid 守护进程]
- 第二课 关于 exit、_exit、fork、vfork、printf以及wait和waitpid的学习
- Linux进程:僵尸与孤儿
- 进程控制 [fork() exec() wait() waitpid()]
- 进程控制 [fork() exec() wait() waitpid()]
- 进程控制 [fork() exec() wait() waitpid()]
- POJ 3984 迷宫问题 (BFS,水题)
- javascript 编程规范
- OCI 简介
- 基于BS的Java+iText导出PDF报表
- 灵活应用组策略-Preference首选项功能之共享文件夹!
- linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸
- js的replace方法将字符串中的 全部替换为空字符串
- WM的跑表程序
- 漫话中文分词算法
- Javascript 链式作用域
- Python实现二叉树
- 编程笔记(objective-c :关于属性)
- RMAN 初学者入门
- 用eclipse创建WebService Step by Step