셸 스크립트 파일의 이상 종료시 처리

익명 사용자의 이미지

꽤나 많은 작업을 하는 셸 스크립트 파일이 하나 있습니다
수백 라인이나 되고요
다른 많은 프로그램, 유틸리티, 실행파일 등을 실행시키는 역할을 합니다

물론 스크립트이기 때문에
순서대로 하나하나씩 차례차례 실행합니다

그런데 스크립트 파일이 하나하나씩 실행시키는 실행파일 중에
어느 하나의 실행파일이 비정상적으로 종료되면서
스크립트 파일까지 도중에 중단시켜버리고 (스크립트 파일을 실행시킨 프로그램으로) 리턴됩니다

그 스크립트 파일은 중간중간에 에러가 발생하거나 하고자 하는 일을 수행하지 못해도
처음부터 끝까지 실행되어야 하는 스크립트들이고
최소한 에러가 발생하더라도 에러처리를 해야 하는데

스크립트 파일이 도중에 중단되어 팅겨져 나와 버려서(리턴되어 버려서) 에러처리도 못합니다

시그널 핸들러도 추가하여 몇몇 시그널을 등록해봤지만 (SIGCHLD, SIGSTOP, SIGINT)
핸들러 코드를 타지 않습니다
(혹시 이렇게 비정상적으로 종료될때 어떤 시그널을 등록하면 핸들러 처리를 할 수 있을까요?)

일반적으로 실행파일들을 실행시키고 난 후, $? 변수로 에러 처리를 일일이 하고 있는데
스크립트가 중단되어 팅겨져 나와 버리면 $?로 에러처리조차 할 수 없습니다

어떤 방법으로 처리할 수 있나요?
답변주시면 감사하겠습니다

raymundo의 이미지

그런 경우가 생기다니 신기하군요.원인이나 해결책 정답은 모르겠습니다만, 문제의 실행파일 실행하는 부분을 eval 로 둘러싸면 어떤가요?

좋은 하루 되세요!

익명 사용자의 이미지

흔하지 않은 경우인가 보군요...
문제가 생긴 프로그램이 부모 프로세스에 해당하는 스크립트 파일까지 죽여버리다니
너무 패륜적이지 않나요...;;;

eval을 잘 모르지만 찾아보고 배워서 시도해보겠습니다
답변 감사드립니다

익명 사용자의 이미지

bash 를 사용하고 있으면
어딘가에

set -e

가 있는지 확인해보세요.
위 설정이 있으면

스크립트내에서 이상종료 ( exit 1) 하는 프로세스가 있으면
스크립트 자체를 종료시켜버립니다.

댓글 달기

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