blob: d8d3a72266f9c3d2b85bc6ae949fb8fd0f685faa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include "lift.h"
int main
(
int argc,
const char* argv[]
)
{
char* formatted_pid = getenv( LIFT_PID_ENV );
if( formatted_pid == NULL )
{
fprintf( stderr, "%s: variable " LIFT_PID_ENV " is not set\n", argv[ 0 ] );
return EXIT_FAILURE;
}
char* formatted_end;
long pid = strtol( formatted_pid, &formatted_end, 10 );
if( *formatted_pid == '\0' || *formatted_end != '\0' )
{
fprintf( stderr, "%s: invalid value for " LIFT_PID_ENV ": %s\n", argv[ 0 ], formatted_pid );
return EXIT_FAILURE;
}
if( kill( (pid_t)pid, SIGTERM ) < 0 )
{
fprintf( stderr, "kill(%ld): %s\n", pid, strerror( errno ) );
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
|