使用 nohup 与 & 符号配合运行一个命令
nohup 命令使进程忽略 hangup (挂起) 信号,并将输出设置为non-tty, 即无/关闭终端也可以运行守护进程(daemon)和一般进程有什么差别呢?
守护进程的父进程是init/systemd进程,因为它真正的父进程在fork出子进程后就先于子进程exit退出了,所以它是一个由init/systemd继承的孤儿进程
守护进程是非交互式程序,没有控制终端,所以任何输出,无论是向标准输出设备stdout还是标准出错设备stderr的输出都需要特殊处理
daemon 进程把它的执行目录切换为根,防止类似与U盘插拔的问题,比如无法卸载u盘
进入到/proc/pid中
ls -l cwd: cwd 目录为运行目录
ls -l fd: fd目录下
socket代表套接字,会把输出打印在var、logsshd目录下输出
编写守护进程的一般步骤
fork并exit推出selectid函数创建新的会话chdir函数,让根目录“/”成为子进程的工作目录umask函数,设置进程的umake为0使用 screen 命令: 恢复终端连接
screen 进入 screen 环境ctrl + a d 退出(detached)screen环境screen -ls 查看 screen 会话screen -r sessionid 恢复会话