2024年5月5日发(作者:)

5.

RB_HALT_SYSTEM,

6.

RB_POWER_OFF,

7.

RB_AUTOBOOT

8.

};

9.

static const smallint signals[] = { SIGUSR1, SIGUSR2, SIGTERM };

10.

11.

int delay = 0;

12.

int which, flags, rc;

13.

14.

/* Figure out which applet we're running */

15.

for (which = 0; "hpr"[which] != applet_name[0]; which++)

16.

continue;

17.

18.

/* Parse and handle arguments */

19.

opt_complementary = "d+"; /* -d N */

20.

/* We support -w even if !ENABLE_FEATURE_WTMP,

21.

* in order to not break scripts.

22.

* -i (shut down network interfaces) is ignored.

23.

*/

24.

flags = getopt32(argv, "d:nfwi", &delay);

25.

26.

sleep(delay);

27.

28.

write_wtmp();

29.

30.

if (flags & 8) /* -w */

31.

return EXIT_SUCCESS;

32.

33.

if (!(flags & 2)) /* no -n */

34.

sync();

35.

36.

/* Perform action. */

37.

rc = 1;

38.

if (!(flags & 4)) { /* no -f */