exit shell background job got killed?

Feature, of a sort. If you are using a login shell, and if the huponexit shell option is enabled, then all jobs are sent a SIGHUP signal when the shell is exited. cp does not handle this signal, so the kernel applies the signal's default action, which is to terminate the process.

You have a few options:

  • Turn off huponexitshopt -u huponexit. The process may still exit if it ever tries to write to the terminal after it's been closed, depending on how it handles write errors. (Note that twiddling this option only affects that one shell. You'll need to add it to a shell startup script — or find and delete the corresponding command that's turning the option on — to have it apply to all shells subsequently started.)
  • Use nohup to run the command instead. This wrapper ignores SIGHUP, letting the underlying command run unaffected. Standard output streams are redirected into a file.
  • Use screen. This starts a completely new terminal session. You can detach to this session and reattach to it at a later time, as you please.


發佈了53 篇原創文章 · 獲贊 12 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章