ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>reboot



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

  1. reboot/poweroff
  2. °£·«È­ÇÑ reboot ÄÚµå
  3. minzkn
  4. Version 0.1
  5. 2005/08/13


¼³¸í

À̰ÍÀº °£·«ÇÑ reboot/poweroff ÀÇ ¿¹Á¦¸¦ ¸¸µç°Ì´Ï´Ù.

²Ï °£·«ÇÏ°Ô ±¸ÇöÇѰÍÀε¥

½ÇÁ¦·Î ¿ÏÀüÇÑ ±¸ÇöÀº »ý°¢º¸´Ù ±íÀº ÀÌÇØ¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù.



swapoff¿Í unmount filesystem ºÎºÐÀº ±ÍÂú¾Æ¼­ ±¸ÇöÇÏÁö ¾Ê¾Ò½À´Ï´Ù.

±×¹Û¿¡ Äְܼü·Ã Á¤¸®ÇÏ´Â ºÎºÐµµ ³ÖÁö ¾Ê¾Ò½À´Ï´Ù.

ÇØ´ç ¹Ì±¸ÇöµÈ ºÎºÐÀÌ ¾ø¾îµµ ±â´É»ó ¹®Á¦°¡ °ÅÀÇ ¾øÁö¸¸

¿ÏÀüÇÑ ±¸ÇöÀ» À§Çؼ­´Â ÇÊ¿äÇÕ´Ï´Ù.



i386/ppc/arm/mips ¸ðµÎ¿¡¼­ »ç¿ë°¡´ÉÇÒ°Ì´Ï´Ù.



¿ø¹®: http://minzkn.wowdns.com:2744/phpBB2/viewtopic.php?t=412

»ç¿ë¹æ¹ý

Makefile
# Copyright (C) Information Equipment co.,LTD 
# All rights reserved. 
# Code by JaeHyuk Cho <mailto:minzkn@infoeq.com> 
# CVSTAG="$Header: /usr/local/mutihost/joinc/modules/moniwiki/data/text/RCS/Code_2fC_2freboot,v 1.1 2007/01/09 02:46:10 root Exp root $" 
 
# bash$ make TARGET_ARCH=i386 all 
# bash$ make TARGET_ARCH=mips all 
# bash$ make TARGET_ARCH=ppc all 
# bash$ make TARGET_ARCH=arm all 
 
TARGET_ARCH                  :=i386 
# TARGET_ARCH                  :=mips 
# TARGET_ARCH                  :=ppc 
# TARGET_ARCH                  :=arm 
 
ifeq ($(findstring mips,$(TARGET_ARCH)),mips) 
 CROSS_COMPILE               :=/opt/kenati/bin/lx4189-uclibc-# 
else 
 ifeq ($(findstring ppc,$(TARGET_ARCH)),ppc) 
  CROSS_COMPILE              :=/opt/hardhat/devkit/ppc/405/bin/ppc_405-# 
 else 
  ifeq ($(findstring arm,$(TARGET_ARCH)),arm) 
   CROSS_COMPILE             :=/usr/local/arm-linux/bin/arm-linux-# 
  else 
   ifeq ($(findstring i386,$(TARGET_ARCH)),i386) 
    CROSS_COMPILE            :=# 
   else 
    CROSS_COMPILE            :=# 
   endif 
  endif 
 endif 
endif 
 
CC                           := $(CROSS_COMPILE)gcc 
RM                           := rm -f 
 
CFLAGS                       := -O2 -Wall -Werror -fomit-frame-pointer -pipe -I. -D_REENTRANT 
LDFLAGS                      := -s 
 
TARGET                       := mzreboot mzpoweroff 
 
OBJECT_mzreboot              := reboot.o 
OBJECT_mzpoweroff            := poweroff.o 
 
OBJECTS                      := $(OBJECT_mzreboot) $(OBJECT_mzpoweroff) 
 
.PHONY: all clean 
 
all: $(TARGET) 
clean: ; $(RM) *.o $(TARGET) 
 
$(OBJECTS): Makefile shutdown.h 
 
mzreboot: $(OBJECT_mzreboot) ; $(CC) $(LDFLAGS) -o $(@) $(^) 
mzpoweroff: $(OBJECT_mzpoweroff) ; $(CC) $(LDFLAGS) -o $(@) $(^) 
 
%.o: %.c ; $(CC) $(CFLAGS) -c -o $(@) $(<) 
 
# End of Makefile 
 

ÄÚµå

/*  
  Copyright (C) Information Equipment co.,LTD  
  All rights reserved.  
  Code by JaeHyuk Cho <mailto:minzkn@infoeq.com>  
  CVSTAG="$Header: /usr/local/mutihost/joinc/modules/moniwiki/data/text/RCS/Code_2fC_2freboot,v 1.1 2007/01/09 02:46:10 root Exp root $"  
*/  
 
#if !defined(__def_mz_shutdown_h__)  
#define __def_mz_shutdown_h__ "shutdown.h"  
 
#include <sys/reboot.h>  
#include <stdio.h>  
#include <stdlib.h>  
#include <unistd.h>  
#include <signal.h>  
 
#if (__GNU_LIBRARY__ > 5) || defined(__dietlibc__)  
# define __mz_reboot_syscall__(m_flag) do{ (void)reboot(m_flag); }while(0)  
#else  
# define __mz_reboot_syscall__(m_flag) do{ (void)reboot(0xfee1dead,672274793,m_flag); }while(0)  
#endif  
 
#define __mz_reboot_block_signal__() do{\  
 (void)signal(SIGINT, SIG_IGN);\  
 (void)signal(SIGTERM, SIG_IGN);\  
 (void)signal(SIGHUP, SIG_IGN);\  
}while(0)  
 
#define __mz_reboot_stop_process__() do{\  
 (void)setpgrp();\  
 __mz_reboot_syscall__(RB_ENABLE_CAD);\  
 (void)sync();\  
 (void)kill((pid_t)1, SIGTERM);\  
 (void)sleep(1u);\  
 (void)system("/sbin/initctl -r");\  
 (void)sync();\  
 (void)fputs("Sending SIGTERM to all processes.\n", stderr);\  
 (void)kill((pid_t)(-1), SIGTERM);\  
 (void)sleep(2u);\  
 (void)kill((pid_t)(-1), SIGKILL);\  
 (void)kill((pid_t)1, SIGQUIT);\  
 (void)sleep((unsigned int)1);\  
 (void)sync();\  
}while(0)  
 
#define __mz_reboot_swap_off__() do{ /* TODO */ }while(0)  
#define __mz_reboot_unmount__() do{ /* TODO */ }while(0)  
 
#define __mz_reboot__() do{\  
 __mz_reboot_block_signal__();\  
 __mz_reboot_stop_process__();\  
 __mz_reboot_swap_off__();\  
 __mz_reboot_unmount__();\  
 __mz_reboot_syscall__(RB_AUTOBOOT);\  
 (void)fputs("ERROR: reboot systemcall !\n", stderr);\  
}while(0)  
 
#define __mz_poweroff__() do{\  
 __mz_reboot_block_signal__();\  
 __mz_reboot_stop_process__();\  
 __mz_reboot_swap_off__();\  
 __mz_reboot_unmount__();\  
 __mz_reboot_syscall__(RB_POWER_OFF);\  
 (void)fputs("ERROR: reboot systemcall !\n", stderr);\  
}while(0)  
 
int main(void)  
{  
#if 0 
 __mz_poweroff__(); 
#else 
 __mz_reboot__();  
#endif 
 return(1);  
}  
 
#endif  
 
/* vim: set expandtab: */  
/* End of source */ 
 

º¯°æ»çÇ×


2005/08/13

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.