首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从用户空间重新启动Linux框

从用户空间重新启动Linux框
EN

Stack Overflow用户
提问于 2009-05-12 14:52:38
回答 4查看 2.2K关注 0票数 0

我需要从用户空间进程重新启动Linux盒。我希望有以下行为:

  1. 同步文件系统
  2. 不试图优雅地停止进程,转到运行级5/6,因为我认为事情很糟糕,这会使

失败。

这些要求能一起实现吗?

我正计划在proc/sysrq触发器中写一个“b”。有更好的办法吗?(不,这不会给我同步。)

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-12 15:05:00

那么,做同步(1),杀死-1,再次同步,杀死-9 -1,同步,关闭-f.

我想这应该能行吧!

票数 2
EN

Stack Overflow用户

发布于 2009-05-12 15:04:51

我猜你有根。

  • 的sysrq触发器很好,你只需先对它做几次回音,这是一个“紧急同步”。
  • 你也可以查看关闭(8)的'-n‘选项。你想怎么做就怎么做。它只发送SIGTERM、SIGKILL、同步和关闭或重新启动(-h或-r选项)

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2009-05-20 05:20:36

这直接来自sys/reboot.h:

代码语言:javascript
复制
#ifndef _SYS_REBOOT_H
#define _SYS_REBOOT_H   1

#include <features.h>

/* Perform a hard reset now.  */
#define RB_AUTOBOOT     0x01234567

/* Halt the system.  */
#define RB_HALT_SYSTEM  0xcdef0123

/* Enable reboot using Ctrl-Alt-Delete keystroke.  */
#define RB_ENABLE_CAD   0x89abcdef

/* Disable reboot using Ctrl-Alt-Delete keystroke.  */
#define RB_DISABLE_CAD  0

/* Stop system and switch power off if possible.  */
#define RB_POWER_OFF    0x4321fedc

__BEGIN_DECLS

/* Reboot or halt the system.  */
extern int reboot (int __howto) __THROW;

__END_DECLS

#endif  /* _SYS_REBOOT_H */

我相信RB_HALT_SYSTEM会处理所有的同步(),等等。我通常自己处理,最后用RB_AUTOBOOT触发重新启动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/853194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档