FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

고수님들..! cdemu-deamon init script와 systemctl unit 파일 검증 부탁합니다.

게시판 Tech/Tip 고수님들..! cdemu-deamon init script와 systemctl unit 파일 검증 부탁합니다.

  • This topic has 2개 답변, 1명 참여, and was last updated 7 years, 7 months 전에 by 난해주님. This post has been viewed 14 times
  • 만든이
    게시글
  • #12213
    난해주님
    참가자
    • 게시글114
    • 댓글337
    • 총합451
    • ★★
    @workman729

    고수님들께... 여쭤 보겠습니다.

    페도라에 cdemu-daemon을 설치하고 chkconfig와 systemctl을 이용한 스크립트 파일을 만들었으나
    둘 다 데몬 로딩이 되지 않네요!
    아래 소스를 첨부해 드립니다. 보시고 뭐가 문제인지 확인 부탁드립니다.
    ## chkconfig init script ###
    #! /bin/sh
    # chkconfig 2345 99 99
    # description: startup script for cdemu-daemon
    # processname: cdemu-daemon

    NAME=cdemu-daemon
    DIR=/usr/local/libexec/
    EXEC=cdemu-daemon-session.sh
    PID_FILE=/var/run/cdemu.pid
    IEXE=/etc/init.d/cdemud
    RUN_AS=root

    if [ ! -f $DIR/$EXEC ]
    then
            echo "$DIR/$EXEC not found."
            exit
    fi

    case "$1" in
      start)
            echo -n "Starting $NAME"
        cd $DIR
        start-stop-daemon -d $DIR --start --background --pidfile $PID_FILE --make-pidfile --exec $EXEC --quiet
            echo "$NAME are now running."
            ;;
      stop)
        echo -n "Stopping $NAME"
            kill -TERM `cat $PID_FILE`
        rm $PID_FILE
            echo "$NAME."
            ;;
      force-reload|restart)
            $0 stop
            $0 start
            ;;
      *)
            echo "Use: /etc/init.d/$NAME {start|stop|restart|force-reload}"
            exit 1
        ;;
    esac
    exit 0

    ## 이상 ##

    ## systemctl unit ##

    [Unit]
    Description=CDEmu Daemon
    [Service]
    Type=dbus
    BusName=net.sf.cdemu.CDEmuDaemon
    ExecStart=/usr/local/libexec/cdemu-daemon-session.sh
    [Install]
    WantedBy=multi-user.target
    ## 이상 ##
    일단 옛날엔 chkconfig 를 이용했으나 스크립트를 백업해 두지 않아 새로 만들어 보았습니다.
    그러나 더 이상 cdemu가 더이상 chkconfig를 지원하지 않는 서비스라고 나옵니다.
    혹하고 systemctl unit 를 만들어 봤으나 이것도 먹혀 들지 않네요!
    고수님들 확인 부탁 드립니다. 틀린 부분이 있으면 지적해 주십시오. 
    페도라에선 더 이상 cdemu가 패키지가 제공 되지 않는 것 같은데 rpm 패키지를 구할수 있는 곳이 있을까요?

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    답변
    • #12949
      난해주님
      참가자
      참가자
      • 게시글114
      • 댓글337
      • 총합451
      • ★★
      @workman729

      아무도 답변을 안달아 주시네요!

      소스상으로 잘못된 부분이 없는 것 같은데 데몬을 뛰울 방법을 모르겠네요! 도움이 될만한 팁을 알려 주시면 감사하겠습니다.
    • #12950
      난해주님
      참가자
      참가자
      • 게시글114
      • 댓글337
      • 총합451
      • ★★
      @workman729

      괘 오래전에 방법을 찾았습니다만 위의 방법은 필요가 없더군요! 옛날에 쓰던 방법에 익숙해서 그런지 그릇 된 방법이 통하리라 생각했습니다만 cdemu가 2.0으로 업그레이드 되고 페도라의 모듈 로딩 정책이 바뀌면서 위의 방법은 필요가 없어 진 것 같습니다.

      대충 안되는 요인이 두 가지가 있는 데 하나는 페도라 repo에서 배포하는 libmirage 패키지가 오래된 버전이더군요! git를 통해 libmirage 패키지를 직접 컴파일 하시거나 2.x대 버전의 패키지를 설치하시기 바랍니다.

      또하나는 vhba 모듈을 로딩하는 방법으로 컴파일시 도움말 문서에 있는 rules 파일의 내용 중 KERNEL=="vhba_ctl", NAME="%k", MODE="0660", OWNER="root", GROUP="cdrom" 그룹이 잘못 되어 있습니다. cdrom group을 이용하기 위해서는 오너를 사용자명으로 바꿔주어야 하는 데 그러면 모듈 이용이 불가능 하죠...^^ 그래서 그룹 중 루트에 기본적으로 포함 되는 users 그룹에 사용자를 추가하고 cdrom 그룹에 users를 포함 시켜 /etc/udev/rules.d/vhba.rules 파일의 내용을 KERNEL=="vhba_ctl", NAME="%k", MODE="0660", OWNER="root", GROUP="users" 로 변경하고 su -c 'modprobe vhba' 하니 모듈이 로딩 됩니다.

      굳이 데몬을 실행할 필요가 없이 부팅 dbus를 이용하여 시스템 로딩이 이미 가능 하더군요! 참고하시기 바랍니다.

      저는 직접 컴파일 하였습니다만 아래 주소에서 rpm 패키지를 검색하여 다운로드 후 로컬에서 직접 설치하셔도 됩니다.
      http://rpm.pbone.net/

      필요한 패키지는 vhba, libmirage, cdemu-daemon, cdemu-client 입니다. 의존성에 걸릴 수 있으니 yum으로 설치하십시오.
      설치 후 su -c 'modprobe vhba' 잊지 마시기 바랍니다.

1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.