Add very basic in_container() function, from sysklogd project

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2022-03-01 20:46:01 +01:00
parent 62dad82ba8
commit 0b1258b44c
2 changed files with 34 additions and 0 deletions
+33
View File
@@ -522,6 +522,39 @@ done:
}
}
/*
* Very basic, and incomplete, check if we're running in a container.
*/
int in_container(void)
{
const char *files[] = {
"/run/.containerenv",
"/.dockerenv"
};
const char *containers[] = {
"lxc",
"docker",
"kubepod"
};
size_t i;
char *c;
c = getenv("container");
if (c) {
for (i = 0; i < NELEMS(containers); i++) {
if (!strcmp(containers[i], c))
return 1;
}
}
for (i = 0; i < NELEMS(files); i++) {
if (!access(files[i], F_OK))
return 1;
}
return 0;
}
#ifndef HAVE_GETFSENT
static lfile_t *fstab = NULL;
+1
View File
@@ -93,6 +93,7 @@ int mksubsys (const char *dir, mode_t mode, char *user, char *group);
void set_hostname (char **hostname);
void networking (int updown);
int in_container (void);
int complete (char *cmd, int pid);
int run (char *cmd);