부팅시 자동으로 심볼릭 링크 연결하는 방법 없을까요??
pysdm을 이용해서 부팅시 자동 마운트하게는 해놨는데 ftp계정에 있는 폴더에 연결 시키기위해 자동으로 심볼릭 링크가 걸리게 하고싶습니다.
관리자 권한때문에 시작프로그램에 sudo mount --bind를 사용할 수도 없고;;
그리고 죽어도 다시 살아나는 프로세스(프로그램이 종료되었을때 다시 실행되도록 하는)를 만들어서 부팅시 자동으로 실행되게 하고싶은데요
구글에서 검색해서 inittab이란걸 알게되어서 거기서 respawn을 사용하면 된다는 말에 제 우분투(10.04)에서 찾아보니 없네요…
자비를 베푸셔서 이런 초짜에게 답변을 달아주시면 감사하겠습니다…
pysdm은 아직 안써봐서 잘 모르겠습니다.
/etc/inittab은 /etc/event.d로 변경됐습니다.
pysdm은 찾아보니 /etc/fstab을 편집하게 해주는 도구네요… (이런도구를 사용해야될까?)
자동 심볼릭 링크를 왜 거는지 이유를 모르겠습니다.
그냥 심볼릭 링크를 걸어두면 해당 파일시스템이 마운트되어 있지 않으면… 에러가 나고.
마운트되어 있으면 연결되는데 말입니다. (심볼릭링크는 원본이 있던 없던 신경을 안쓰는 링크임)
/etc/inittab은
/etc/init/tty숫자.conf로 바뀌었습니다.
거기에서 respawn을 설정해 주시면 될것입니다.
그러나 이것은 프로그램을 실행하기 위한것이 아니라… 가상콘솔을 설정하기 위한 것입니다.
예를 들어 tty1.conf를 편집하면… 가상콘솔1번이 열리면 자동으로 실행되며…
로그아웃하거나 exit하면 다시 또 실행되는 그런 식입니다.
만약 자동으로 되살아나는것이 아니라 장기간 죽지 않는 프로그램으로 실행하고자 한다면…
nohup명령이 있습니다. 원래 오랫동안 응답하지 않는 백그라운드 프로그램은 저절로 죽어버리거든요
자동으로 되살아나는 프로그램을 만드는것보다 죽지 않는 프로그램을 만드는것이 더 낫지 않겠습니까?
하지만 죽어도 되살아나거나 죽지 않는 프로그램이라면 정말… 문제가 있지 않을까요?
어떤 조건이든 죽긴 죽어야 할 것입니다. 안그러면 셧다운도 안되지 않겠습니까?
그렇게 실행되길 바라신다면 그렇게 죽기 힘든 프로그램을 만드는 것보다.
crontab에 등록해서 매초마다 든지… 그런식으로 주기적으로 체크해서 실행되는 프로그램을
작성하는 것이 바람직한 것으로 보입니다.
다음 스크립트는 왠만해서는 죽이기 힘든 스크립트입니다.
왠만한 시그널은 다 무시하니까요.
중요한 시그널로는 INT (Ctrl+C), TSTP(Ctrl+Z), TERM(kill명령), HUP(hangup)
#!/bin/sh
#die_hard.sh
trap ‘’ INT HUP ALRM PIPE STOP USR1 USR2 TSTP TERM
while true; do
date
sleep 1
done
ihavnoth님 protochaos님 답변 감사합니다^^
[quote="protochaos":3ckzyvtd]
자동 심볼릭 링크를 왜 거는지 이유를 모르겠습니다.
그냥 심볼릭 링크를 걸어두면 해당 파일시스템이 마운트되어 있지 않으면… 에러가 나고.
마운트되어 있으면 연결되는데 말입니다. (심볼릭링크는 원본이 있던 없던 신경을 안쓰는 링크임)
[/quote:3ckzyvtd]
심볼릭 링크를 걸어서 마운트 해놓고 재부팅시에 마운트가 풀려버리는 일이 발생해서
질문을 올리게되었습니다… 해결방법 없을까요??
아 그리고 심볼릭 링크를 잘못걸어버려서(반대로 걸어버려서; 폴더에 있던 파일들이 증발해버렸는데요(파티션 용량은 그대로 차지중…)
증발해버린 파일들 살릴 방법은 없을런지요;;
심볼릭 링크와 마운트를 어떻게 사용하는지 짐작하기가 힘드네요.
정확한 사용명령을 알려주시면 좀 더 이해하기가 쉽지 않을까 합니다.
우선 부팅할 때마다 실행하는 루트권한으로 실행하는 방법은 /etc/rc.local에 해당 명령을 적당한 위치(exit 이전)추가해 주시면 됩니다.
UI를 이용한 먼가를 하고 싶으시다면 시작 프로그램에 gksu 를 이용하시면 됩니다만 비밀번호를 매번 요구하기에 적당하진 않을 듯 합니다.
심볼릭 링크는 특성상 단순히 파일 패스 문자열을 대치하는 효과 밖에는 얻지 못합니다. 심볼릭 링크를 잘못하거나 한다고 해서 내용이 바뀌거나 하진 않습니다. 물론 부가적인 이유로 심각한 시스템상에 변화를 줄 수고 있지만 매우 드문 경우입니다.
여하튼 질문하신분이 적은 내용만으로는 어떤 의도로 어떻게 심볼릭 링크 명령을 사용하시는데 문제가 있으신지 짐작하기 힘듭니다.
lanterrt님 답변 감사합니다^^
mount --bind /media/sda2/folder /etc/skel/folder로 심볼릭 링크를 걸어두었구요.(ftp 사용을 위해(계정을 추가 할때마다 복사해주기는 힘들어서;;))
/media/sda2/folder를 삼바 공유 폴더로도 지정해두었습니다.
다른 생각 다 제껴두고 처음부터 /etc/skel/folder로 그냥 마운트 해버리면 되지만
우분투에서 따로 파일 저장용도로도 쓰고해서 그냥 마운트 해두었습니다.
[quote="lanterrt":1v8753al]
우선 부팅할 때마다 실행하는 루트권한으로 실행하는 방법은 /etc/rc.local에 해당 명령을 적당한 위치(exit 이전)추가해 주시면 됩니다.
[/quote:1v8753al]
이미 rc.local에 명령을 추가 해봤지만 재부팅후 확인하면 마운트 되있지 않습니다;;;
그리고 gksu같은 그래픽 프로그램 실행 명령어 없을까요??
처음 죽어도 다시 살아나는 프로세스를 질문한 이유는 teamviewer 사용중에 갑자기 꺼질때가 있어서 그것을 방지하기 위해서 질문을 올렸는데요.
ssh로 teamviewer를 실행시키면 터미널을 종료하는 동시에 teamviewer가 같이 종료됩니다.
gksu으로 실행했을시에는 그래픽 프로그램이 따로 터미널이 종료되어도 꺼지지않고 계속 실행되는걸로 알고있어서
ssh로 gksu teamviewer하니 루트권한으로 실행시킬 필요가 없다고 하면서 실행이 되지않네요;;
혹시 몰라서 pysdm을 삭제한 뒤 /etc/fstab으로 부팅시 파티션이 마운트 되도록 한뒤
rc.local에 mount --bind 명령을 넣어서 재부팅을 해봤지만
파티션 마운트는 되고 rc.local에 넣어둔 명령은 실행되지 않더군요;;(rc.local이 fstab보다 먼저 실행되서 그런건지;
[quote="khy3031":3h969yjg]혹시 몰라서 pysdm을 삭제한 뒤 /etc/fstab으로 부팅시 파티션이 마운트 되도록 한뒤
rc.local에 mount --bind 명령을 넣어서 재부팅을 해봤지만
파티션 마운트는 되고 rc.local에 넣어둔 명령은 실행되지 않더군요;;(rc.local이 fstab보다 먼저 실행되서 그런건지;;)[/quote:3h969yjg]
mount 프로그램의 매뉴얼을 살펴 보시면
[code:3h969yjg]% man mount[/code:3h969yjg]
fstab을 이용해서 bind를 지정할 수 있도록 되어 있습니다.
[code:3h969yjg]
/olddir /newdir none bind
[/code:3h969yjg]
따라서 굳이 rc.local등에 수정이 없이도 해당 작업은 가능할 것으로 생각됩니다.
루트라고 해서 터미널과 관련없이 작동하는 것은 아닙니다. 터미널에 바인드 되는 것은 프로그램을 직접 실행하는 경우입니다.
[code:3h969yjg]
% teamview
[/code:3h969yjg]
위와 같이 실행할 경우 Terminal이 종료될 경우 터미널과 같이 종료되는 문제가 있을 수 있습니다. 이를 막기 위해서 아래와 같이 실행하면 터미널과 상관없이 실행상태를 유지하게 됩니다.
[code:3h969yjg]
% teamview &
[/code:3h969yjg]
물론 해당 프로그램이 버그로 인해서 일정 주기로 에러로 종료될 경우가 있을 수 있는데 해당 경우에 대해서도 대응하기 위해서는 스크립트를 이용하시면 될 듯 합니다.
[code:3h969yjg]
#!/bin/bash
while /bin/true ; do
teamview
done
[/code:3h969yjg]
위의 스크립트를 시작프로그램에 등록하면 자동으로 실행되면서 매번 별다른 지정이 없이도 영구히 작동하게 만들 것으로 생각됩니다. 제가 teamview사용자가 아니라서 확인은 안되지만 위의 방법으로 문제가 해결되지 않을 경우 다른 방법을 강구하셔야 할 것으로 생각됩니다.
참고로 Ubuntu는 설정에 데스크탑 공유 옵션이 기본적으로 지원됩니다. VNC를 이용한 접근이 가능하며 기본적으로 꺼져 있는 기능이기 때문에 사용하고자 한다면 "설정" > "원격데스크탑" 의 메뉴를 이용하시면 됩니다.
저는 갠적으로 팀뷰어 별루 더군요…
그다지 속도도 별루고 품질도 별루… 메일로 초대해서 로그인 할 수 있다는 장점은 있지만…
어자피 클라이언트는 설치되어야 하기 때문에…
차라리 윈도우즈의 원격지원이나 터미널 서비스가 더 편하지 않겠습니까?
sudo apt-get install xrdp로 xrdp를 설치해서 써보시는 것도 좋습니다.
VNC출력을 윈도우즈 원격지원이나 터미널서비스 형식으로 변환해줍니다.
윈도우즈클라이언트에서 원격지원으로 접속하면 리눅스화면을 볼 수 있게 해주는 것입니다.
lanterrt님, protochaos님 답변 감사합니다^^
[quote="lanterrt":1wq52ubi][quote="khy3031":1wq52ubi]혹시 몰라서 pysdm을 삭제한 뒤 /etc/fstab으로 부팅시 파티션이 마운트 되도록 한뒤
rc.local에 mount --bind 명령을 넣어서 재부팅을 해봤지만
파티션 마운트는 되고 rc.local에 넣어둔 명령은 실행되지 않더군요;;(rc.local이 fstab보다 먼저 실행되서 그런건지;;)[/quote:1wq52ubi]
mount 프로그램의 매뉴얼을 살펴 보시면
[code:1wq52ubi]% man mount[/code:1wq52ubi]
fstab을 이용해서 bind를 지정할 수 있도록 되어 있습니다.
[code:1wq52ubi]
/olddir /newdir none bind
[/code:1wq52ubi]
따라서 굳이 rc.local등에 수정이 없이도 해당 작업은 가능할 것으로 생각됩니다.
루트라고 해서 터미널과 관련없이 작동하는 것은 아닙니다. 터미널에 바인드 되는 것은 프로그램을 직접 실행하는 경우입니다.
[code:1wq52ubi]
% teamview
[/code:1wq52ubi]
위와 같이 실행할 경우 Terminal이 종료될 경우 터미널과 같이 종료되는 문제가 있을 수 있습니다. 이를 막기 위해서 아래와 같이 실행하면 터미널과 상관없이 실행상태를 유지하게 됩니다.
[code:1wq52ubi]
% teamview &
[/code:1wq52ubi]
물론 해당 프로그램이 버그로 인해서 일정 주기로 에러로 종료될 경우가 있을 수 있는데 해당 경우에 대해서도 대응하기 위해서는 스크립트를 이용하시면 될 듯 합니다.
[code:1wq52ubi]
#!/bin/bash
while /bin/true ; do
teamview
done
[/code:1wq52ubi]
위의 스크립트를 시작프로그램에 등록하면 자동으로 실행되면서 매번 별다른 지정이 없이도 영구히 작동하게 만들 것으로 생각됩니다. 제가 teamview사용자가 아니라서 확인은 안되지만 위의 방법으로 문제가 해결되지 않을 경우 다른 방법을 강구하셔야 할 것으로 생각됩니다.
참고로 Ubuntu는 설정에 데스크탑 공유 옵션이 기본적으로 지원됩니다. VNC를 이용한 접근이 가능하며 기본적으로 꺼져 있는 기능이기 때문에 사용하고자 한다면 "설정" > "원격데스크탑" 의 메뉴를 이용하시면 됩니다.[/quote:1wq52ubi]
덕분에 잘해결 되었습니다 감사합니다^^
[quote="protochaos":1wq52ubi]저는 갠적으로 팀뷰어 별루 더군요…
그다지 속도도 별루고 품질도 별루… 메일로 초대해서 로그인 할 수 있다는 장점은 있지만…
어자피 클라이언트는 설치되어야 하기 때문에…
차라리 윈도우즈의 원격지원이나 터미널 서비스가 더 편하지 않겠습니까?
sudo apt-get install xrdp로 xrdp를 설치해서 써보시는 것도 좋습니다.
VNC출력을 윈도우즈 원격지원이나 터미널서비스 형식으로 변환해줍니다.
윈도우즈클라이언트에서 원격지원으로 접속하면 리눅스화면을 볼 수 있게 해주는 것입니다.[/quote:1wq52ubi]
저도 품질은 그렇다치고 속도때문에 팀뷰어를 별로 좋아하진 않지만
외부에서 사용하고 스마트폰으로 토렌트를 받을때 사용하기에 그냥 계속 사용중이네요:)
아무튼 답변들 감사합니다 많은 도움되었어요^^