Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438772
  • 博文数量: 78
  • 博客积分: 2030
  • 博客等级: 大尉
  • 技术积分: 1002
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 15:25
文章分类

全部博文(78)

文章存档

2012年(1)

2011年(1)

2010年(4)

2009年(12)

2008年(60)

我的朋友

分类: LINUX

2008-10-29 17:43:29

# busybox/init/reboot.c - reboot_main()

return kill_init(SIGTERM);

# busybox/init/init_shared.c - kill_init()

return(kill(*pid, sig))

到这里,reboot实际完成了向init进程发送一个SIGTERM信号。到init的实现中查看相关的实现,

# busybox/init/init.c - init_main()

signal(SIGTERM, reboot_signal);

# busybox/init/init.c - reboot_signal()

init_reboot(RB_AUTOBOOT);

# busybox/init/init.c - init_reboot()

reboot(magic);

这里的reboot实际上调用了

# cross-compiling-include/sys/reboot.h

extern int reboot (int __howto) __THROW;

这样自然就会走到调用sys_reboot中

# kernel-src-path/kernel/sys.c

asmlinkage long sys_reboot(…)

{

machine_restart(NULL);


阅读(2565) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~