mirror of
https://github.com/git/git.git
synced 2024-11-18 23:13:58 +01:00
daemon: new option --pid-file=<path> to store the pid
Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
5f490ce03c
commit
45ed5d7f4c
17
daemon.c
17
daemon.c
@ -674,6 +674,15 @@ static void sanitize_stdfds(void)
|
||||
close(fd);
|
||||
}
|
||||
|
||||
static void store_pid(const char *path)
|
||||
{
|
||||
FILE *f = fopen(path, "w");
|
||||
if (!f)
|
||||
die("cannot open pid file %s: %s", path, strerror(errno));
|
||||
fprintf(f, "%d\n", getpid());
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
static int serve(int port)
|
||||
{
|
||||
int socknum, *socklist;
|
||||
@ -689,6 +698,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
int port = DEFAULT_GIT_PORT;
|
||||
int inetd_mode = 0;
|
||||
const char *pid_file = NULL;
|
||||
int i;
|
||||
|
||||
/* Without this we cannot rely on waitpid() to tell
|
||||
@ -753,6 +763,10 @@ int main(int argc, char **argv)
|
||||
user_path = arg + 12;
|
||||
continue;
|
||||
}
|
||||
if (!strncmp(arg, "--pid-file=", 11)) {
|
||||
pid_file = arg + 11;
|
||||
continue;
|
||||
}
|
||||
if (!strcmp(arg, "--")) {
|
||||
ok_paths = &argv[i+1];
|
||||
break;
|
||||
@ -787,5 +801,8 @@ int main(int argc, char **argv)
|
||||
|
||||
sanitize_stdfds();
|
||||
|
||||
if (pid_file)
|
||||
store_pid(pid_file);
|
||||
|
||||
return serve(port);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user