본문 바로가기

Anything

커스텀 액션 메뉴 어플릿 - 원클릭 동작 수행!

얼마전에 제가 vsftpd로 파일을 주고 받는 것에 대한 포스팅을 했습니다. 거기서 vsftpd를 필요할 때에만 사용하시라고도 말씀을 드렸지요. 그러나 그건 너무 번거로운 과정이 아닐수가 없습니다. 이번에는 그것에 대한 포스팅을 해볼까 합니다.

이런식의 메뉴를 출력해주는 어플릿이 있습니다. 이 메뉴는 완전히 "커스터마이징"이 가능합니다. 아래 스크린샷을 보실게요. 중사 계급 아이콘을 한 어플릿을 우클릭하면 아래 메뉴가 뜹니다.

빨간색으로 하일라이팅된 저걸 눌러주시면 됩니다.

이 파일의 내용을 편집해서 원하는 기능을 수행하는 것도 가능하지요. vsftpd를 끄고 켜는 스위치 만들기를 한번 해봅시다.

vsftpd 끄기=gksudo "service vsftpd stop"

vsftpd 켜기=gksudo "service vsftpd start" 

어때요? 간단하죠? 이제는 저 메뉴에서 vsftpd 끄기 혹은 켜기를 누르고 비밀번호만 입력하면 vsftpd를 끄고 켤 수 있게 되었습니다. 그런데, 데몬이 제대로 돌지 않는다면? 그걸 알아야겠지요. 그래서 아래 쉘 스크립트를 작성했습니다.

#!/bin/bash


SERVICE=$1

ACTION=$2


service $SERVICE $ACTION 1>/dev/null 2>&1

result=`service $SERVICE status | grep "running" 1>/dev/null 2>&1; echo $?`


if [ "$result" == "1" ]; then

echo "*** $SERVICE가 현재 실행중이지 않습니다."

else

echo "*** $SERVICE가 현재 실행중입니다."

fi


echo ""

service $SERVICE status

참고로 아래 명령은 안먹습니다.

jaehoon@jaehoon ~ $ gksudo "gnome-terminal -e 'service vsftpd start; service vsftpd status'"

※ 터미널이 계속 떠있기를 기대했지만... 몇번을 테스트 해봐도 원하는 결과가 나오지 않습니다. 

이렇게 해주고 나서 테스트를 한번 해봅시다.

jaehoon@jaehoon ~ $ gksudo "gnome-terminal -e './service-sw.sh vsftpd start'"

음, gksudo는 스크린샷이 안찍히네요... 그래서 웹에서 가져왔습니다. scrot으로 5초 지연줘서 찍었습니다. 허헣


이런식으로 비밀번호를 물어봅니다. 그리고 나서, 인증을 받고 나면,

이런 터미널이 하나 뜹니다. q를 눌러주면 닫히죠. 이제 테스트를 마쳤으므로 얘를 다른곳으로 옮겨줍시다.

jaehoon@jaehoon ~ $ sudo mv service-sw.sh /etc/jaehoon.d

jaehoon@jaehoon /etc/jaehoon.d $ sudo chown root:root service-sw.sh

이렇게 해 준 뒤에, 아까 메뉴 파일을 바꿔줍니다.

vsftpd 끄기=gksudo "gnome-terminal -e '/etc/jaehoon.d/service-sw.sh vsftpd stop'"

vsftpd 켜기=gksudo "gnome-terminal -e '/etc/jaehoon.d/service-sw.sh vsftpd start'"

이렇게요.

이렇게 변경하고 나면 아래처럼 메뉴가 뜹니다. (아, 위 스샷에 오류가 있는데, ./service-sw.sh가 아니라 /etc/jaehoon.d/service-sw.sh로 바꿔야합니다 =ㅅ= 다쓰고 나서 눈치챔;)

어때요? 깔끔하죠? 히힛 심지어 기능 동작도 정상적입니다.


짜잔~ 이걸 응용해서 iostat 보는 기능을 만들 수도 있고, iftop을 수행할 수도 있습니다. 이렇게 간단하게 손쉬운 관리 메뉴가 만들어졌습니다. 아래 스크린 샷은 iostat 모니터 스크립트구요, 그 아래것은 iftop입니다.

간단하지요? iftop은 아래와 같습니다.

iftop=gksudo "gnome-terminal -e 'iftop'"

이렇게요.