mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-09 03:35:20 +00:00
commit
7c76f49546
@ -195,6 +195,30 @@ static void kill_children(pid_t pid)
|
|||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void remove_self(void)
|
||||||
|
{
|
||||||
|
char path[PATH_MAX];
|
||||||
|
ssize_t n;
|
||||||
|
|
||||||
|
n = readlink("/proc/self/exe", path, sizeof(path));
|
||||||
|
if (n < 0) {
|
||||||
|
SYSERROR("Failed to readlink \"/proc/self/exe\"");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
path[n] = 0;
|
||||||
|
|
||||||
|
if (umount2(path, MNT_DETACH) < 0) {
|
||||||
|
SYSERROR("Failed to unmount \"%s\"", path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unlink(path) < 0) {
|
||||||
|
SYSERROR("Failed to unlink \"%s\"", path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i, ret;
|
||||||
@ -296,6 +320,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
lxc_setup_fs();
|
lxc_setup_fs();
|
||||||
|
|
||||||
|
remove_self();
|
||||||
|
|
||||||
pid = fork();
|
pid = fork();
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
Loading…
Reference in New Issue
Block a user