[질문] 이런 스크립트는 어떻게 짜야할까요?

splendor의 이미지


ABC라는 이름의 프로그램이 있는데, 이놈이 프로세스를 여러개 띄우는 놈이라서,
ps 해보면 ABC가 여러개 있습니다. 그중에서 가장 작은 PID를 가진 것을 죽이면 나머지도 다죽는데...
이것을 스크립트로 하나 만들어놓을까 싶어서요...

그냥 ABC라는 이름을 가진 놈을 다 죽여도 됩니다만...
이거는 ps랑 grep하면 간단하게 되는데...

PID가 가장 작은 녀석만 죽이는 건 어떻게 만들어야할까요??

pung96의 이미지

ps -ef | awk '/ABC/{print $2 | "sort -n"}' | head -1

nahanjang의 이미지

ps의 결과가 프로세서 생선 순으로 정렬되므로
마지말 프로세서의 PPID를 죽이면 되지 않을까요?

ps -ef | awk '/ABC/{print $3 }' | tail -1

pung96의 이미지

가장 먼저 생긴 프로세서를 죽여야 하니까 첫번째가 아닐까 합니다만.. 잘 모르겠군요.
그리고 tail의 경우에는 awk가 검색되어 마지막에 나타날 것이기 때문에.. awk검색 부분을 제거해야 합니다.

ps -ef | awk '/[A]BC/{print $3 }' | tail -1
nahanjang의 이미지

Quote:
ABC라는 이름의 프로그램이 있는데, 이놈이 프로세스를 여러개 띄우는 놈이라서,

하나의 부모프로세서가 여러개의 자식프로세서를 생성한다고 생각되서 자식프로세서 중
아무거나의 부모프로세서를 죽이면 되지 않을까라고 생각했습니다.
부모프로세서는 아마도 가장 먼저 생성되었기 때문에 마지막에 생성된놈은
필히? 자식프로세서라고 생각하고 그프로세서의 부모프로세서를 ....

그래서 pung96님의 스크립을 살짝 수정 했었습니다.

생각없이 수정했는데 마지막에 awk의 프로세서가 걸려서 억지로 만드니까

ps -ef |grep ABC | grep -v grep | awk '{print $3}' | tail -1

더 간단하게 안되나???
pung96의 이미지

ps -ef | awk '/[A]BC/{print $3 }' | tail -1

이게 제가 아는 가장 짧은 방법입니다.
그리고 1이 2를 만들고 2가 3을 만들고 3이 4를 만드는 그런 경우가 있더군요.
ppid를 사용하는건 좋은 아이디어 같습니다.
nonots의 이미지

killall ABC 이건 좀 무식한건가?

=== 건달의 경지를 꿈꾸며 ===


=== 건달의 경지를 꿈꾸며 ===

kewlbear의 이미지

부모 프로세스가 fork를 이용해서 자식 프로세스를 실행하는 거라면 부모 프로세스의 pid가 항상 가장 작은 값이라고 볼 수는 없지 않나요?

pung96의 이미지

정확히는 모르겠습니다만.. 보통은 그렇게 만들지 않겠지요... 라고밖에

pynoos의 이미지

네, process id는 언젠가는 다시 처음부터 할당되는 방식으로 돌고 돌기 때문에 부모가 항상 작다고는 할 수 없습니다.

심지어 AIX는 process id가 1 씩 증가하는 방식으로 생성되지 않고 랜덤(?)하게 생기더군요.

haewoo의 이미지

pkill -9 ABC

이방식도 좀 무식한가요??

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.