【问题标题】:how to use shutdown call in linux using assembly programming 64-bit?如何使用 64 位汇编编程在 linux 中使用关机调用?
【发布时间】:2018-12-10 22:02:30
【问题描述】:

我将此程序设为可执行,但系统未关闭。这也需要管理员权限。

section .text
global _start
_start:
      mov rax,48 ;shutdown system call
      mov rdi,60 ;time taken to shutdown(1 hour)
      syscall
      mov rax,60
      mov rdi,0
      syscall 

【问题讨论】:

  • 那不是系统关机功能。那是网络套接字关闭。见man 2 shutdown
  • 我把它误认为是系统关闭功能。感谢您的澄清。我发誓我不会再重复这个了。

标签: linux assembly 64-bit


【解决方案1】:

shutdown 系统调用不会关闭系统。它实现了shutdown() 函数,该函数关闭套接字上的通信。如果要关闭系统,请使用reboot() 系统调用。有关文档,请参阅 reboot(2)

但是,请注意,使用适当的参数调用 reboot 会立即关闭系统,而不会给软件时间正确关闭,也不会同步文件系统。我强烈建议您通过调用 shutdown 实用程序来关闭系统,该实用程序会根据您的初始化系统执行正确的操作。如果您不想这样做,您至少应该先调用sync() 将所有正在进行的数据提交到磁盘。

【讨论】:

  • @RaviTejaParuchuri 老实说,我什么都不知道。
猜你喜欢
  • 2018-11-13
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 2011-03-16
  • 1970-01-01
相关资源
最近更新 更多