有没有办法在 Ubuntu(16.04 或 18.04)中使用 C++ 强制用户注销?就像如果满足条件一样,我希望程序注销当前用户。
在 Windows 10 中,我们可能可以像这样使用 ExitWindows
https://learn.microsoft.com/en-us/windows/desktop/shutdown/how-to-log-off-the-current-user .
在Ubuntu下可以吗?我找不到如何做到这一点的好例子。
最佳答案
这是特定于窗口管理器的,因此使用 exec
函数来执行此操作可能是最简单的。 Ubuntu 18.04 默认使用 Gnome,因此在 Gnome 中您将执行以下操作:
#include <unistd.h>
#include <stdlib.h>
int main()
{
if (execl("/usr/bin/gnome-session-quit", "/usr/bin/gnome-session-quit",
"--no-prompt", (char*) NULL) < 0)
printf("Failed to logout\n");
}
我不太确定 KDE 的 loginctl
程序位于何处,因此我假设它位于同一位置,因此对于 KDE,您将:
#include <stdlib.h>
...
char *user=getenv("USER");
if (execl("/usr/bin/loginctl", "/usr/bin/loginctl",
user, (char*) NULL) < 0)
printf("Failed to logout\n");
关于c++ - 如何使用 C++ 在 Ubuntu 上强制用户注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55113150/