Print this page
graph
@@ -3572,10 +3572,26 @@
*/
(void) fork_with_timeout("/usr/bin/pkill -TERM -v -u 0,1,15", 1, 5);
(void) fork_with_timeout("/usr/bin/pkill -KILL -v -u 0,1,15", 1, 5);
}
+static int
+exec_cmd(char * invoke, char * output)
+{
+ FILE * cmd = popen(invoke, "r");
+ if (! cmd)
+ return 0;
+ fgets(output, 512, cmd);
+ if (! *output) {
+ pclose(cmd);
+ return 0;
+ }
+ output[strlen(output) - 2] = '\0';
+ pclose(cmd);
+ return 1;
+}
+
static void
do_uadmin(void)
{
const char * const resetting = "/etc/svc/volatile/resetting";
int fd;
@@ -3638,12 +3654,12 @@
*/
if (halting == AD_FASTREBOOT) {
#if defined(__i386)
int rc;
- if ((rc = grub_get_boot_args(&fbarg, NULL,
- GRUB_ENTRY_DEFAULT)) == 0) {
+ if ((rc = exec_cmd("/sbin/grubadm --number -1 --get-opts",
+ fbarg.gba_bootargs)) == 0) {
mdep = (uintptr_t)&fbarg.gba_bootargs;
} else {
/*
* Failed to read GRUB menu, fall back to normal reboot
*/