让Linux开机自己启动HttpServer在特定端口(如80)
背景:我要让一台机器提供HttpServer,这样其他的机器就能访问到这台机器的文件了。而且要求这台机器重启后仍然提供HttpServer
如果有错误之处,比如打错了一个字母,还希望大家留个心眼自己敲的时候思考一下对不对,不希望大家多走弯路~
方法:
(1)在命令行里输入下面这条语句,相当于安排一个定时任务
sudo crontab -e
(2)在打开的文件中添加这一行
@reboot su data(这是用户名字,我用的是data) -c /home/data/httpserver.sh(要执行的文件)
su:表示switch user ,即切换用户,
data是我的用户名
-c 表示执行这个命令文件
(3)在/home/data这个路径下的httpserver.sh中,用vi httpserver.sh打开vi编辑器,,写:
cd /samba/data(这是你要提供HttpServer共享出去的文件夹的路径)
sudo python -m SimpleHTTPServer 80(使用Python启动HTTPServer)
按Esc,输入“:wq”(引号不用输),退出,w表示存,q表示退出,记得回去看看是否已经存上了
注意!!!:启用80端口是需要sudo管理员命令的,但是像8080这种普通端口是不需要写sudo的
直接写python -m SimpleHTTPServer 8080应该就可以了,然后第(4)步也不用执行
(4)因为linux系统第一次输入sudo命令是需要密码的,但是我们要求机器重启后自动开启HttpServer,如果你的端口需要sudo管理员命令
那么参考这个来:
输入:sudo visudo
输入:用户名字如data ALL=(ALL) NOPASSWD:ALL
这表示用户"data"不需要对sudo命令输入密码在我的windows机器上访问这台linux机器,就能访问到他的文件了。注意地址应该是IP地址如10.117.8.47:8080(端口号),但80端口不用输(这也就是我为什么用了80端口)