作为一个javaer,遇到任何问题,先查一下java中的解决方案.地球上的许多事情,在java中都能找到完美的解决方案.之前搭建ftp服务器使用的是vsftpd,现在可以把它卸掉了,它以服务的形式运行,并且它包含很多我所不知道的东西.

wget+tar-zxvf下载解压ftpserver,进入bin目录,更改ftpd.sh,添加JAVA_HOME变量.

输入指令:./ftpd.sh res/conf/ftpd-typical.xml & 后台运行.

这里要注意,ftpd.sh中有一句cd $FTPD_HOME,这就使得这个程序的当前目录变成了$FTPD_HOME.如果ftpd-typical.xml路径不对,会一直报"文件未找到"异常.

ftpd.sh需要提供配置文件名称作为参数,它的行为取决于ftpd.xml的配置,一般情况下,使用ftpd-typical已经足够了.如果不知道ftpd.xml怎么配置,可以参考ftpd-full.xml,这个文件列出了所有的参数.

默认情况下,用户名和密码都是admin,端口号为2121.ftp的默认端口号为21.http默认端口号为80.tomcat默认端口号为8080,因为1024以内的端口号是不允许随便占用的,而1024以后的却可以.所以,要想占用1024以内的端口号,就要通过sudo命令.

默认情况下,user.properties中的用户密码是md5加密的,要想不加密,需要更改ftpd-typical.xml.匿名用户对于服务器上的文件是只读的,这可以在user.properties中设置权限.

问题到这里并没有结束,当退出shell之后,ftpd也就跟着停止运行了.这个问题就是:在linux shell关闭后,程序如何才能继续运行?

(1)方案一

ctrl+z暂停程序,bg [作业号]将程序后台运行.这一步相当于使用[命令名]&运行程序.

对于后台运行的程序,它只是不占用shell了,但它仍然是shell的子程序,shell一死,它仍然要跪.所以需要使用命令

disown -h %1

来把这个程序"不属于"shell.

bg是把程序放到后台,fg是把程序调到前台.

用jobs命令查看当前作业.jobs -l查看作业列表.

当使用disown把程序解除之后,可以通过ps -e | grep bash 命令查看这个程序,可以kill之.

(2)方案二

SIGHUP是linux中信号的一种,表示hang up(挂起)信号.当shell收到SIGHUP信号时,shell的儿子们也会收到这个信号.

nohup ./haha.sh arg1 arg2 arg3  &

默认情况下,haha.sh运行过程中的一切输出都写入到了~/nohup.out文件中,注意要让nohup在后台运行,所以加上"&".

然后ps -ex | grep haha,就可以看见这个程序了.

关闭当前shell,重新打开一个,仍旧ps -ex | grep haha,发现还在运行着.

(3)方案三

使用screen/tmux

方案二是最完美的解决方案,更改ftpd.sh,把其中最后运行java的那句话用nohup重写一遍,把错误信息输出到控制台下,让这个程序后台执行

eval >& "&"

如何测试一个ftp服务器是不是好使?方法一:打开浏览器输入ftp://ip地址:端口号;方法二:使用filezilla.

如果filezilla报错"收到服务器的 TLS 警告: Handshake failed (40)",文件>站点管理>新建站点,加密方式选择:只是用普通ftp,这种方式不太安全.

使用apache ftpserver搭建ftp服务器的更多相关文章

  1. 使用Apache FtpServer搭建FTP服务器 [FlashFXP]

    <server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w ...

  2. 利用apache ftpserver搭建ftp服务器

    操作环境: win2012r2 x64 datacenter Apache FtpServer 1.2.0 Java SE Development Kit 8u333 commons-dbcp2-2. ...

  3. pyftpdlib 搭建FTP服务器

    学会socket之后,就可以使用应用层的协议了,比如FTP,HTTP等,不过一般这些应用层都会有现成的模块,学不学socket都无所谓,这是python的方便之处.这里搭建FTP服务器使用的就是pyf ...

  4. 利用Serv-U搭建FTP服务器

    以前在学校的时候,学校的整个宿舍楼都是在一个局域网中,经常有人用个人电脑搭个网站或者FTP啊什么的,主要是进行一些影视资源的传播活动.不乏 有些资源充沛的有志青年利用业余时间翻译某岛国影视资源,利用局 ...

  5. Windows下IIS搭建Ftp服务器

    第一步:启用Windows IIS Web服务器 1.1 控制面板中找到"程序"并打开 1.2 程序界面找到"启用或关闭Windows功能"并打开 1.3 上面 ...

  6. Python一秒搭建ftp服务器,帮助你在局域网共享文件【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  7. Python一秒搭建ftp服务器,帮助你在局域网共享文件

    "老板 来碗面" "要啥面?" "内牛满面.." 最近项目上的事情弄得人心累,本来是帮着兄弟项目写套入口代码,搞着搞着就被拉着入坑了.搞开发 ...

  8. Python黑科技:6行代码轻松搭建FTP服务器

    Python 黑科技 六行代码轻松搭建个人FTP服务器 什么是FTP服务器? FTP (File Transfer Protocol) 是一个用于客户端与服务器之间文件的协议.利用FTP我们就能做到在 ...

  9. 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)

    自己搭建ftp服务器,方便主机与虚拟机中的Ubuntu传输文件. 选用的ftp软件为vsftpd. 1.命令行: sudo apt-get install vsftpd 2.安装完配置: vsftpd ...

随机推荐

  1. 一个有趣的CM

    系统 : Windows xp 程序 : Crackme#3 - Self Destructed 程序下载地址 :http://pan.baidu.com/s/1kVxwlaZ 要求 : 注册机编写 ...

  2. APP长时间后台运行

    *  参考:http://www.nivalxer.com/archives/187 首先,我要说明的是在iOS中,一般应用程序在后台挂起之后仅拥有3分钟时间来处理相应的未完成事件,但是3分钟之后就会 ...

  3. IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章

    十年前,笔者还是一个刚毕业的大学生,对IT业只是停留在学校的编程知识领域.刚出社会,有很多需要学习的地方.在这十年间,笔者经历了程序员,技术经理,项目经理,部门经理等职位.本文就是要说说如何从程序员到 ...

  4. Sql--order by、desc降序、top

    ---------通过order by 语句进行排序: --1.降序order by 列名desc --2.升序order by 列名   或order by 列名asc --3.order by语句 ...

  5. Linux iptables配置错误导致ORA-12535 & ORA-12170

    实验环境:       操作系统  : Red Hat Enterprise Linux Server release 5.7 (Tikanga)       数据库版本: Oracle Databa ...

  6. SQL性能优化:如何定位网络性能问题

    一同事跟我反馈他遇到了一个SQL性能问题,他说全表只有69条记录,客户端执行耗费了两分多钟,这不科学呀.要我分析一下原因并解决.我按照类似表结构,构造了一个案例,测试截图如下所示 这个表有13800K ...

  7. Hadoop2.5.0 搭建实录

    目录: 第一步:准备相关材料 第二步:虚拟机环境搭建 第三步:用户信息 第四步 安装.配置Java环境 第五步 Zookeeper安装配置 第六步 Hadoop安装.配置 第七步:HBase安装部署 ...

  8. 完全卸载oracle11g步骤

    完全卸载oracle11g步骤:1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务.2. 开始->程序->Oracle - OraHome ...

  9. EF Load之详讲

        参考 Loading Related Entities with Entity Framework - A Beginner's Primer

  10. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...