如何Linux下使用C语言编写重启自身的程序
Linux2.6内核,c语言(最好是古老点的标准) gcc 编写一个程序 如 a.out,
bash下运行 ./a.out 效果:
1. 运行自己. a.out
(当然是在一定条件下,如某个文件某个数值blabla):
2. 结束自己.(kill发送信号或者更好的方式)
3. 再重新启动 a.out
如何实现进程自己重启自己.不使用守护进程,看门狗.
可以使用proc系统的一些特性,system系统调用.fork等update@20130319
目前的方案#include
#include
#include
int main(int argc,char **argv)
{
printf("start\n");
if(access("a.txt", 0)==0){
printf("rm a.txt\n");
system("rm a.txt");
execl(argv[0],argv[0],NULL);
}else{
printf("touch b.txt\n");
system("touch b.txt");
}
printf("end\n");
return 0;
}
运行a.out,存在a.txt,execl自己.
类似重启自身进程(?).只是原来进程的东西没有了,都被execl覆盖了.
大致上实现了我的想法.貌似偏离了重启自身的主题 :P
不知道有什么潜在问题,请大神们多多指教
相关阅读:
jQuery 移动端横向滚动会带动网页上下滑动怎么办?
Xcode中自带的崩溃数据收集怎么样设置
获取客户端IP ,HTTP_CLIENT_IP 是一个骗局吗?
求告知,npm和bower的区别
全选/全不选 怎么按钮不好使?
如何获取token
Mylyn eclipse 不能使用富文本编辑器对task进行编辑。
OkHttp3 MultipartBody文件数量是否有限制?
node request post 请求参数设置
nmake为什么叫"n"make?
laravel中数据库表得关联问题
我想在ios里使用C的数组,如何能把空间开到最大?
开发Shopify的支付宝插件
mac for xampp 配置虚拟路径访问出现403,access forbidden。
shell 中,如何判断一个文件 已经写 结束?
SpringMvc+Hibernate中懒加载 json的对象的加载问题
通过jquery 修改的dom 无法使用jquery的方法
响应式设计中为html设置百分比的作用
如何通过配置参数生成星盘图形
protected static $member_id; //这行代码什么意思 我没这样写过 ,瞬间看不懂是干嘛的