2019独角兽企业重金招聘Python工程师标准>>>
如题
有时候我们使用putty连接linux的时候执行某个命令运行程序的时候关闭putty就会出现应用程序也关闭的情况这里建议就使用如下命令
nohup youcommand 然后会将应用程序日志内容输出到这个文件中。
如下内容属从网络复制未找到最原始出处谢谢原著
Unix/Linux下一般想让某个程序在后台运行很多都是使用
/usr/local/mysql/bin/mysqld_safe --usermysql 可能我们的程序只是普通程序而已一般这种程序即使使用 如果终端关闭那么程序也会被关闭。为了能够后台运行我们需要使用nohup这个命令比如我们有个start.sh需要在后台运行并且希望在后台能够一直运行那么就使用nohup
nohup /root/start.sh
[~]$ appending output to nohup.out
原程序的的标准输出被自动改向到当前目录下的nohup.out文件起到了log的作用。
但是有时候在这一步会有问题当把终端关闭后进程会自动被关闭察看nohup.out可以看到在关闭终端瞬间服务自动关闭。
咨询红旗Linux工程师后他也不得其解在我的终端上执行后他启动的进程竟然在关闭终端后依然运行。
在第二遍给我演示时我才发现我和他操作终端时的一个细节不同他是在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口然后通过在shell中输入exit来退出终端而我是每次在nohup执行成功后直接点关闭程序按钮关闭终端.。所以这时候会断掉该命令所对应的session导致nohup对应的进程被通知需要一起shutdown。
这个细节有人和我一样没注意到所以在这儿记录一下了。
附nohup命令参考
nohup 命令
用途不挂断地运行命令。
语法nohup Command [ Arg ... ] [ nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令忽略所有挂断SIGHUP信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令添加 表示"and"的符号到命令的尾部。
无论是否将 nohup 命令的输出重定向到终端输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加那么 Command 参数指定的命令不可调用。如果标准错误是一个终端那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
退出状态该命令返回下列出口值
126 可以查找但不能调用 Command 参数指定的命令。
127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
否则nohup 命令的退出状态是 Command 参数指定命令的退出状态。
nohup命令及其输出文件
nohup命令如果你正在运行一个进程而且你觉得在退出帐户时该进程还不会结束那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。
该命令的一般形式为nohup command 那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中除非另外指定了输出文件
nohup command > myout.file 2>输出被重定向到myout.file文件中。
使用 jobs 查看任务。
使用 fg %n 关闭。
另外有两个常用的ftp工具ncftpget和ncftpput可以实现后台的ftp上传和下载这样就可以利用这些命令在后台上传和下载文件了
转:https://my.oschina.net/u/1432675/blog/800612