Remove the _rc_can_find_pids function
This test to find if we could see pid 1 was being used inconsistently in rc-status and mark_service_crashed to decide whether we could test to see if the daemon for the service was crashed, and it was not part of the librc library. I am removing it from the executables because of inconsistent usage. I will add it to the library if it is needed there.
This commit is contained in:
parent
08da36149c
commit
faa8318b3b
@ -66,9 +66,6 @@ int parse_mode(mode_t *, char *);
|
|||||||
/* Handy function so we can wrap einfo around our deptree */
|
/* Handy function so we can wrap einfo around our deptree */
|
||||||
RC_DEPTREE *_rc_deptree_load (int, int *);
|
RC_DEPTREE *_rc_deptree_load (int, int *);
|
||||||
|
|
||||||
/* Test to see if we can see pid 1 or not */
|
|
||||||
bool _rc_can_find_pids(void);
|
|
||||||
|
|
||||||
RC_SERVICE lookup_service_state(const char *service);
|
RC_SERVICE lookup_service_state(const char *service);
|
||||||
void from_time_t(char *time_string, time_t tv);
|
void from_time_t(char *time_string, time_t tv);
|
||||||
time_t to_time_t(char *timestring);
|
time_t to_time_t(char *timestring);
|
||||||
|
@ -68,9 +68,7 @@ int main(int argc, char **argv)
|
|||||||
ok = rc_service_started_daemon(service, exec, NULL, idx);
|
ok = rc_service_started_daemon(service, exec, NULL, idx);
|
||||||
|
|
||||||
} else if (strcmp(applet, "service_crashed") == 0) {
|
} else if (strcmp(applet, "service_crashed") == 0) {
|
||||||
ok = (_rc_can_find_pids() &&
|
ok = ( rc_service_daemons_crashed(service) && errno != EACCES);
|
||||||
rc_service_daemons_crashed(service) &&
|
|
||||||
errno != EACCES);
|
|
||||||
} else
|
} else
|
||||||
eerrorx("%s: unknown applet", applet);
|
eerrorx("%s: unknown applet", applet);
|
||||||
|
|
||||||
|
@ -411,34 +411,6 @@ RC_DEPTREE * _rc_deptree_load(int force, int *regen)
|
|||||||
return rc_deptree_load();
|
return rc_deptree_load();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _rc_can_find_pids(void)
|
|
||||||
{
|
|
||||||
RC_PIDLIST *pids;
|
|
||||||
RC_PID *pid;
|
|
||||||
RC_PID *pid2;
|
|
||||||
bool retval = false;
|
|
||||||
|
|
||||||
if (geteuid() == 0)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
/* If we cannot see process 1, then we don't test to see if
|
|
||||||
* services crashed or not */
|
|
||||||
pids = rc_find_pids(NULL, NULL, 0, 1);
|
|
||||||
if (pids) {
|
|
||||||
pid = LIST_FIRST(pids);
|
|
||||||
if (pid) {
|
|
||||||
retval = true;
|
|
||||||
while (pid) {
|
|
||||||
pid2 = LIST_NEXT(pid, entries);
|
|
||||||
free(pid);
|
|
||||||
pid = pid2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free(pids);
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
const char * const name;
|
const char * const name;
|
||||||
RC_SERVICE bit;
|
RC_SERVICE bit;
|
||||||
|
@ -54,7 +54,6 @@ const char *usagestring = "" \
|
|||||||
"Usage: rc-status [options] <runlevel>...\n" \
|
"Usage: rc-status [options] <runlevel>...\n" \
|
||||||
" or: rc-status [options] [-a | -c | -l | -m | -r | -s | -u]";
|
" or: rc-status [options] [-a | -c | -l | -m | -r | -s | -u]";
|
||||||
|
|
||||||
static bool test_crashed = false;
|
|
||||||
static RC_DEPTREE *deptree;
|
static RC_DEPTREE *deptree;
|
||||||
static RC_STRINGLIST *types;
|
static RC_STRINGLIST *types;
|
||||||
|
|
||||||
@ -145,9 +144,7 @@ print_service(const char *service)
|
|||||||
color = ECOLOR_WARN;
|
color = ECOLOR_WARN;
|
||||||
} else if (state & RC_SERVICE_STARTED) {
|
} else if (state & RC_SERVICE_STARTED) {
|
||||||
errno = 0;
|
errno = 0;
|
||||||
if (test_crashed &&
|
if (rc_service_daemons_crashed(service) && errno != EACCES)
|
||||||
rc_service_daemons_crashed(service) &&
|
|
||||||
errno != EACCES)
|
|
||||||
{
|
{
|
||||||
child_pid = rc_service_value_get(service, "child_pid");
|
child_pid = rc_service_value_get(service, "child_pid");
|
||||||
start_time = rc_service_value_get(service, "start_time");
|
start_time = rc_service_value_get(service, "start_time");
|
||||||
@ -240,8 +237,6 @@ int main(int argc, char **argv)
|
|||||||
char *p, *runlevel = NULL;
|
char *p, *runlevel = NULL;
|
||||||
int opt, retval = 0;
|
int opt, retval = 0;
|
||||||
|
|
||||||
test_crashed = _rc_can_find_pids();
|
|
||||||
|
|
||||||
applet = basename_c(argv[0]);
|
applet = basename_c(argv[0]);
|
||||||
while ((opt = getopt_long(argc, argv, getoptstring, longopts,
|
while ((opt = getopt_long(argc, argv, getoptstring, longopts,
|
||||||
(int *) 0)) != -1)
|
(int *) 0)) != -1)
|
||||||
|
Loading…
Reference in New Issue
Block a user