热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux的nohup命令

Linux的nohup命令--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
昨晚在DreamHost的shell里wget了一个文件,想传到我的ftp上,却又急着回家吃饭。用ftp命令put上去,一断开连接,传输就停止了。觉得Windows都有at命令,Linux应该有定时执行的功能吧。上网查了一番,找到这篇活用Linux的后台任务,原来只要在命令后面加上&符号就可以让任务在后台运行了。不过,这只是让任务在后台执行,断开连接一样会被结束掉。于是用了这么一条命令:

nohup ncftpput -u yskin -p *** ftp.server.com /wwwroot 123.zip&

执行后,用jobs命令查看到他正在运行,然后用exit命令退出shell,ftp到我的ftp服务器上,发现文件大小在不停地增加。今天早上上网,发现文件已经传完了。自己睡觉让机器干活,真爽!

好像jobs命令只能显示当前连接中的job,退出后再telnet进去就显示不出来了。另外有一个小发现,ftp服务器上的文件时间被设置过了,看来ncftpput程序会自动设置上传文件的时间呀,我用过的ftp客户端好像都没有这样的功能,以后有空要查一查。

Update:今天特别有兴趣研究这个问题:怎样在ftp里修改FTP服务器上远程文件时间。ncftpput的帮助里有一条"-y Try using 'SITE UTIME' to preserve timestamps on remote host."好像是利用"SITE UTIME"命令来修改远程文件时间的。在网上查到说:Not many remote FTP servers support this, so it may not work.试了一下,我的两个FTP服务器都不支持这条命令,晕倒,Serv-U都不支持。无奈,去ncftp官网把NcFTP Client的源代码下了下来,直接用WinRAR搜索"UTIME",找到c_utime.c文件,里面写的很清楚了,先尝试用"SITE UTIME"命令修改,不行再用MDTM命令修改。试了一下,用ftp命令登陆,敲入quote MDTM 20060101000000 filename,修改成功,bingo.

另外,我还查到PHP里可以用touch()函数修改文件的最后修改时间,和Linux里的touch命令名字一样,hoho

Update2:好像我的FTP服务器上的Serv-U FTP Server v6.0和yskin.net上的vsFTPd 2.0.3都支持MDTM命令,而DreamHost的ProFTPD 1.3.0rc2 Server不支持MDTM命令。So,只能telnet上去,用touch命令改咯。

Update3:Kirin Lin大大推荐使用Linux的screen程序。去Google找了一圈,找到《使用 Screen 看管不适合“无人看管”的终端软件》和《Unix/Linux 工具: Screen 命令使用》。这个工具就相当于在shell里再运行一个shell,就像登陆shell,然后输入bash命令,或者Win+R->cmd进Windows命令行提示符后再输入cmd回车一样。只不过,这个新的shell可以随时暂停,而且登出shell后它还在运行,下次还能再登陆进去。

命令很简单,screen -S test即可建立一个叫test的screen,可以在这个screen里运行程序,假设我运行python:

[burns]$ python
Python 2.5 (r25:51908, Nov 23 2006, 19:51:08)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
好吧,我承认我是在炫耀刚在DreamHost上安装的Python 2.5,具体安装过程在这里有详细描述。

这时,按下Ctrl+a,再按下d键,这是显示"[detached]",表示断开了这个screen。然后,我们用screen -ls命令查看一下

[burns]$ screen -ls
There is a screen on:
1906.test (Detached) 1 Socket in /var/run/screen/S-yskin.
显示有一个已经断开连接的screen。输入exit,退出shell,然后再telnet进去。键入screen -ls命令,可以发现我可爱的叫test的screen仍然乖乖的躺在那儿。只要DreamHost主机不重启,这个screen应该一直存在吧。输入screen -r test可以重新连接上这个screen(因为我给了它个名字叫test,否则就必须记住1906这个号码咯),我的python还在。按下Ctrl+D退出python,再输入exit就可以退出这个screen,屏幕上会显示"[screen is terminating]"。唔,terminating,这个词好耳熟啊,昨天看《终结者Ⅲ》时好像听过。

Windows命令行提示符和Linux的bash可以进很多层,不过退出时要输入一层一层输入exit退出。呃,试着在一个screen里再开一个screen,按Ctrl+A->D退出,会直接退出第一层screen。用screen -ls命令查看,可以看到第一层已经断开了,第二层还连着。不知道如果开好多层,然后用-D命令强制停止中间的某一层有什么结果,嘿嘿。

才学了几天Linux,发现Linux真好玩,比DOS好玩多了。

Update3:用nohup命令,可以直接在后台运行命令。如果用screen,在一个screen里的时候,即使telnet断线,在登陆上去,切换进screen,还能进入断线前的页面。不过,如果用ncftpput命令,那么命令执行完之后,screen并不会关闭。DOS下有个&符号,可以相继运行几个命令。(Windows应该是&,纯DOS下应该是Ctrl+T吧)在Linux试了一下,&符号好像表示的是同时运行多个命令,以多线程的方式运行。所以,ncftpput还在运行,这边screen已经退出了,screen打开的bash进程也停了。不过这个ncftpput还能继续运行下去,直到上传完文件才自行关闭,好玩的很。而|和<还有>是管道符号。刚才因为输错了命令,偶然间发现一个符号:分号;。分号间隔的命令可以相继运行。在screen里输入ncftpput ... ;exit,等ncftpput上传完文件,这个screen就自动关闭了,hoho

还学了两个命令:ps -e查看进程,kill -9 +进程号强行关闭进程。
推荐阅读
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • 之前项目在windows2003服务器上设置定时任务,每天执行。现在把项目移植到linux系统。也要在linux系统上设置计划任务。但是之前我从来没有做过。所以多得不 ... [详细]
  • 阿里云服务器iis设置方法与上千种Linux桌面版本相比,Linux服务器只有可怜的十几种。但想要选对适合你的企业需要的仍然不是件容易的事情,选Linux服务器首先要 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
Ai剧_本
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有