最近vps被google学术禁了,只能换个ip了,突然想写个自启动脚本,以后懒得重启后,手动开服务了
推荐vultr的vps,实测用日本的最快(昨天我我刚试了洛杉矶,新加坡,日本),用俺的链接俺也有反馈,哈哈!
更新:vultr早已被玩烂了,推荐onevps,感觉客服很不错,回复特别快,日本线路速度也超好
正题
2018年5月31日更新
###新方法:使用Systemd
关于Systemd
的历史和基本知识可以学习一下阮一峰的文章
在此我只记录一下自己用的脚本
vim /usr/local/bin/run_start_ssrr.sh
#!/bin/bash
cd ~
cd shadowsocksr/shadowsocks/
python3 server.py -d start
vim /usr/local/bin/run_stop_ssrr.sh
#!/bin/bash
cd ~
cd shadowsocksr/shadowsocks/
python3 server.py -d stop
cd /usr/local/bin/
chmod +x *
vim /etc/systemd/system/run_ssrr.service
[Unit]
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/run_start_ssrr.sh
ExecStop=/usr/local/bin/run_stop_ssrr.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
chmod 664 /etc/systemd/system/run_ssrr.service
systemctl daemon-reload
systemctl enable run_ssrr.service
systemctl start run_ssrr.service
systemctl status run_ssrr.service
方法一:编辑rc.local脚本
rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。 该脚本位于/etc/路径下,需要root权限才能修改。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
注意: 一定要将命令添加在 exit 0之前
方法二:添加一个开机启动脚本
上面的方法虽然奏效,但是将所有不同的脚本指令写入同一个文件不是一个好的style。我们可以自己写一个run.sh,然后让系统在开机时自动执行。
1.建立自己的脚本
首先我们需要写一个需要执行的脚本,比如这次我想让我的vps开机启动kcp服务
#!/bin/bash
cd ~/kcp/
./kcp-start.sh
随后将脚本保存为run_server.sh
2.修改脚本权限
sudo chmod +x run_server.sh
3.将脚本放置在启动路径下
将run_server.sh移动到/etc/init.d路径下,可以直接拷贝,也可以链接过去
sudo cp run_server.sh /etc/init.d/
4.将脚本添加到启动脚本
执行如下指令,在这里90表明一个优先级,越高表示执行的越晚
cd /etc/init.d/
$ sudo update-rc.d run_server defaults 90
5.如何移除该脚本
sudo update-rc.d -f run_server.sh remove