리눅스 명령어의 fsck,who,kill,ps 명령어에 대한 질문여...

cd9cd9의 이미지

아~ 우째...공부할 때마다 질문 꺼리가 계속 생겨서 정말..ㅡㅡ;;
오늘은 질문이 10가지 정도되요,
모두 짧은 질문들이지만...질문이 많아서 정말 민망스럽네요..ㅡㅡ;;
염치불구하고 질문드릴께요.ㅡㅡ;

질문1)
파일시스템 점검 명령어인 fsck와 e2fsck명령어의 차이점은 무엇인가요??

질문2)
fsck /dev/hda1 부터 hda8 까지...그리고
e2fsck /dev/hda1 부터 hda8 까지
이렇게 명령을 실행해보니

Warning Running e2fsck on a mounted filesystem may cause SERVERE
filesystem damage.
Do you really want to continue (Y/N)?

이렇게 나오더라구요...뭔가 손상이 있을 수도 있으니까, 실행할꺼냐? 말꺼냐?
이런뜻인거 같은데...파일시스템을 점검하는 것인데, 왜 손상이 있을 수도
있다고 하는지...만약 실행을 하게 되면 무슨 손상이 생기는 건가요??

질문3)
e2fsck와 fsck명령어는 도스의 scandisk와 같은 기능을 하는 건가요??

질문4)
파일시스템 유형을 지정할 수 있는 명령어는 fsck만 가능한건가요??
예를 들자면, fsck ext2 /dev/hda1 처럼 e2fsck 에는 파일시스템 유형을 지정할
수 없는건가요??

질문5)
fsck명령어에 파일시스템 유형을 붙였을 때와 안 붙였을 때의 차이점은 무엇인가요??

질문6)
fsck 나 e2fsck 명령어로 Window 파티션을 점검할 경우 어떻게 되나요??
(테스트는 해보 싶지만, 잘 못되면...ㅡㅡ;;)

질문7)
리눅스로 부팅하여 콘솔상에서 로그인하고,
startx -- :1
명령으로 xwindow로 넘어간 다음 바로 한텀을 열고 who 명령어를 실행하면

root root

이렇게 2명이 로그인 된 것으로 나오는데요...분명 root로 하나만 로그인 했는데
왜 2명이 로그인되는 것으로 나오는 건가요??

질문8)
"kill -9 프로세스 PID "

명령으로 죽인 프로세스는 다시 활성화 시킬 수 없는건가요??
예를 들어 kill -9 1234 이렇게 한 다음에 다시 kill -1 1234 이렇게 하면

bash : kill 1234 - no such PID

라고 나오면서 1234 프로세스가 다시 활성화가 되지 않더라구요,
제가 보고 있는 책에는

"kill -1 프로세스 PID "

이렇게 하면 해당 프로세스를 다시 활성화 시킬 수 있다고 나와 있는데...
안되네요...원래 한 번 죽인 프로세스는 다시 활성화 시킬 수 없는건가요??
만약 그렇다면,

"kill -1 프로세스 PID "

의 명령어의 의미는 무엇인가요??

질문9)
"kill -1 bash의 프로세스 PID" 명령어를 실행해보고, 또
"kill -9 bash의 프로세스 PID" 명령어를 실행해 봤는데요.
현재 실행중인 한텀창이 닫혀버리네요...ㅡㅡ;
"kill -9 bash의 프로세스 PID" 은 원래 해당 프로세스를 죽이는 명령어니까
이해가 가는데, "kill -1 bash의 프로세스 PID" 명령어는 해당 프로세스를
다시 활성화시키는 것인데, 왜 한텀창이 닫히는 건가요??

질문10)
"ps -aux" 명령을 실행해보니까 STAT 라는 항목에

S , SW , SW< , Z , R , R<

이런 표시들이 있고, 또 맨 윗 행에 보니까

VSZ , RSS , TTY , START , TIME , COMMAND

이런 항목들이 있던데요, 무엇들을 의미하는 것인가요??
제가 보고 있는 책에는 나와 있지 않아서...ㅡㅡ;;

에궁~ 질문이 너무 많아서 정말로 죄송해요.
하지만, 알고 싶은자의 답답함을 이해해주시기를 바래요.
물론 이렇게 질문을 하는 제가 민망스럽지만...
그래도 답변해 주시면, 정말로 열심히 공부할께요~ (__)

errai의 이미지

간단하게 답변 드리겠습니다. :)

Quote:

질문1)
파일시스템 점검 명령어인 fsck와 e2fsck명령어의 차이점은 무엇인가요??

fsck는 리눅스 파일 시스템을 점검 하는 명령어 입니다. fsck를 실행하면 파일 시스템에 따라서 fsck.ext2 , fsck.ext2 등의 프로그램을 실행하도록 되어 있습니다. e2fsck는 ext2 파일 시스템을 복구 하는 프로그래램입니다.

Quote:

질문2)
fsck /dev/hda1 부터 hda8 까지...그리고
e2fsck /dev/hda1 부터 hda8 까지

e2fsck를 ext2가 아닌 파일 시스템에 사용하면 파일시스템이 망가질 수 있습니다. 주의 하시기 바랍니다.

Quote:

질문3)
e2fsck와 fsck명령어는 도스의 scandisk와 같은 기능을 하는 건가요??

fsck와 scandisk가 비슷하다고 볼 수 있습니다. e2fsck는 fsck를 실행 하면 그 파일시스템이 ext2일때 실행되는 프로그램입니다.

질문5, 질문6은 너무 뻔합니다. man fsck나 man e2fsck 하셔서 메뉴얼을 천천히 읽어보시기 바랍니다. fsck에 관심이 많으시군요. :-)

질문7에서 who에 나오는건 각 터미널에서 사용하는 사용자의 리스트입니다. 한텀을 띄웠을때 터미널이 하나더 생기므로 root가 하나더 생기는것입니다.

질문8,9도 한꺼번에 답변해 드리지요.
kill -l 를 해보시면 시그널 목록이 보이실 겁니다. 1번 은 SIGHUP 9번 SIGKILL이라고 되어있네요. SIGKILL과 SIGSTOP을 제외한 나머지는 프로그램 내부에서 시그널 핸들러에 의해 처리됩니다. 그 책에서 어떻게 설명되었는지 모르겠지만 kill -1 [PID] 에서 PID에 해당하는 프로그램 내부에서 1번 시그널(SIGHUP)에 대한 처리를 하지 않았다면 무시되거나 프로세스가 죽게 됩니다. inetd같은 경우에 SIGHUP 시그널을 받으면 재시작하도록 시그널 핸들러를 프로그램 해 놓았지만 다른 프로세스는 만든 사람 마음이겠죠?
SIGKILL은 커널에서 처리합니다. SIGKILL 시그널을 받은 프로세스는 바로 죽여버리게 됩니다. :evil: 일반적으로 프로세스를 종료 할때는 15번 인 SIGTERM을 사용해야 정상 종료가 됩니다.
즉 1번은 프로세스를 다시 활성화 시키는게 아니랍니다. 그리고 한번 종료된 프로세스는 메모리에서 지워지기 때문에 다시 살려내거나 할 수 없습니다.

질문10에 대한 답 역시..
man ps 를 실행시키신후 천천히 읽어 보세요 ^^

Quote:

물론 이렇게 질문을 하는 제가 민망스럽지만...
그래도 답변해 주시면, 정말로 열심히 공부할께요~ (__)

그럼 약속대로 열심히 공부하시기 바랍니다. :)

mushim의 이미지

Quote:
질문2)
fsck /dev/hda1 부터 hda8 까지...그리고
e2fsck /dev/hda1 부터 hda8 까지
이렇게 명령을 실행해보니

Warning Running e2fsck on a mounted filesystem may cause SERVERE
filesystem damage.
Do you really want to continue (Y/N)?

이렇게 나오더라구요...뭔가 손상이 있을 수도 있으니까, 실행할꺼냐? 말꺼냐?
이런뜻인거 같은데...파일시스템을 점검하는 것인데, 왜 손상이 있을 수도
있다고 하는지...만약 실행을 하게 되면 무슨 손상이 생기는 건가요??


위의 영어를 해석하면 mount 된 filesystem 에 대해서 e2fsck 를 실행하게 되면,
filesystem 손상을 가져올수 있다고 하는 뜻입니다.

filesystem 체크를 하는 동안, 이 filesystem 에 다른 프로세스가 쓰게되면 정합성이 깨질수 있습니다.

해당 filesystem(즉, 파티션) 을 umount 하신다음 e2fsck 를 실행하셔야 합니다.

umount 가 되지 않는다면, 이 filesystem 이 사용중이라는 뜻이므로, 사용 프로세스를 먼저 종료하여야 합니다.

만약, reboot 할 수 있는 상황이시라면 single mode 로 부팅하신후 하시는게 좋을것 같습니다.

eungkyu의 이미지

errai wrote:
즉 1번은 프로세스를 다시 활성화 시키는게 아니랍니다.

원래 1번, 즉 HUP시그널은 shell이 background로 작업을 돌리고 있을 때 shell을 종료시키면, 그 background로 돌고 있던 작업에게 보내 터미널 죽었으니까 너도 죽어랏 하고 보내는 용도의 signal입니다. 그래서 shell이 죽더라도 background로 돌리는 작업이 죽지 않게 하려면 nohup command 이렇게 명령을 내리라고 하죠.

그런데 요즘은 shell이 죽더라도 background 작업이 죽지 않기를 원하는 경우가 많아졌고, 각종 shell은 자기가 죽을때 background 작업에게 HUP signal을 보내지 않는 것을 기본값으로 세팅하는 경우가 많아지고 있습니다. 당장 bash의 경우도 기본적으로 죽을 때 HUP을 보내지 않죠.

즉, 이 시그널은 시작부터 제어 터미널을 떼버리고 실행하는 daemon 프로세스의 경우에는 아무 해당사항이 없는 시그널입니다. 그래서 사람들이 HUP시그널을 대몬에게는 다른 용도로 사용하기 시작하였고, 그 굳어진 용도가 바로 설정파일을 다시 읽는, 또는 다시 초기화를 하는 용도입니다.

그래서 대부분의 대몬들은 HUP을 받으면 설정파일을 다시 읽도록 프로그래밍이 되어있고, 요즘은 HUP 설명에 이 용도가 더 많이 등장하는 것 같습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.