如何使用 64 位汇编编程在 linux 中使用关闭调用?

how to use shutdown call in linux using assembly programming 64-bit?

我使这个程序可执行,但系统没有关闭down.this还需要管理员权限。

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 

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

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