1. sinsengumi

    Posted

    sinsengumi
Changes in title
+nohup コマンド
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,55 @@
+# nohup
+
+この記事は [Linux コマンド 全部オレ Advent Calendar 2017](https://adventar.org/calendars/2630) の14日目の記事です。
+
+```
+NAME
+ nohup -- invoke a utility immune to hangups
+
+SYNOPSIS
+ nohup [--] utility [arguments]
+
+DESCRIPTION
+ The nohup utility invokes utility with its arguments and at this time sets the signal
+ SIGHUP to be ignored. If the standard output is a terminal, the standard output is
+ appended to the file nohup.out in the current directory. If standard error is a ter-
+ minal, it is directed to the same place as the standard output.
+
+ Some shells may provide a builtin nohup command which is similar or identical to this
+ utility. Consult the builtin(1) manual page.
+```
+意味としては HUP シグナルを無視したいときに使う。
+
+## よく使いそうな使い方
+
+`nohup コマンド &` で、コマンドを実行し仮想端末を閉じたりログアウトしてもコマンドが動き続けるようにする。
+一般的には仮想端末を閉じると、HUP シグナルが送られてそのプロセスは終了する(※)が、それを無視することでプロセスを動かせ続けるようにする。
+
+```
+[sinsengumi ~]$ nohup sleep 30 &
+```
+
+## nohup つけなくても動き続けてるけど?
+
+bash だと `huponexit` がデフォルト OFF になっているから。これが OFF だと exit しても SIGHUP は送られない。
+
+### 参考
+
+- https://www.glamenv-septzen.net/view/854
+
+## nohup とデーモンの違い
+
+デーモンのざっくりした定義としては以下らしい。
+
+1. バックグランドで動作している
+1. 制御端末を持たない
+1. 他のプロセスグループに属さない
+1. 親プロセスが init
+
+3, 4 あたり満たしてないので、デーモンとは言わない感じ。
+systemd や supervisord などでサービス化されてるものはデーモンと呼んで良さそう。
+
+
+### 参考
+
+- http://engineering.otobank.co.jp/entry/2015/03/12/135500