linux自定义脚本添加到rc.local脚本无法正常运行的问题

  为了能科学地上网,你懂的。其中需要将服务端做成开机启动。然而脚本在secure crt下能正常运行,添加到/etc/rc.local下却无法正常启动服务。用ps查找了下,脚本是运行了,但服务没起来。于是折腾了一通,怀疑是不是路径找不到的原因。然而export了一下PATH,妥妥的。

  原脚本

#! /bin/sh
#进程名字可修改
PRO_NAME=ssserver
PORT=不告诉你
PASS=不告诉你

while true ; do

  #用ps获取$PRO_NAME进程数量
  NUM=`ps aux | grep ${PRO_NAME} | grep -v grep |wc -l`
  #echo "ps aux | grep ${PRO_NAME} | grep -v grep |wc -l"
  #echo $NUM
  #小于1,重启进程
  if [ "${NUM}" -lt "1" ];then
    echo "${PRO_NAME} was killed"
    ${PRO_NAME} -p ${PORT} -k ${PASS} -m aes-256-cfb --user nobody -d start
  fi
done

exit 0

  修改后的脚本

#! /bin/sh
#进程名字可修改
PRO_NAME=ssserver
PORT=要告诉你吗
PASS=还是不告诉你
export PATH="$PATH"

while true ; do

  #用ps获取$PRO_NAME进程数量
  NUM=`ps aux | grep ${PRO_NAME} | grep -v grep |wc -l`
  #echo "ps aux | grep ${PRO_NAME} | grep -v grep |wc -l"
  #echo $NUM
  #小于1,重启进程
  if [ "${NUM}" -lt "1" ];then
    echo "${PRO_NAME} was killed"
    ${PRO_NAME} -p ${PORT} -k ${PASS} -m aes-256-cfb --user nobody -d start
  fi
done

exit 0

  妥妥的,优雅科学地上网去,墙不再。

时间: 2024-09-18 08:11:20

linux自定义脚本添加到rc.local脚本无法正常运行的问题的相关文章

rc local-在 rc.local 中添加shell脚本开机启动后,如果需要用到数据库,会报错,怎么解决

问题描述 在 rc.local 中添加shell脚本开机启动后,如果需要用到数据库,会报错,怎么解决 会出现这样的报错,感觉是数据库还没启动完. OperationalError: (2006, 'MySQL server has gone away') 但是已经加了非常长的延时,还是不行,开机后自己手动启动的话就不会出现在这个问题,怎么解决 解决方案 你需要放在数据库启动之后.不然你的脚本启动的时候,数据库还没有启动 解决方案二: 你明白出错的原因啊,放在数据库启动完了之后在执行这个脚本就OK

Linux 搭建VPN,PPTPD一键安装脚本

大家百度都知道有很多为Linux搭建PPTPD方式的VPN文章,主要是用到4个rpm包安装(dkms.kernel_ppp_mppe.pptpd.ppp) 这4个包因为版本差异依赖,总会遇到很多问题,我已经下载了匹配的4个包上传到我的百度网盘中,如果脚本中直接引用的地址不能正常下载,则大家自行到我的网盘中下载下来后,然后修改一下脚本即可. http://pan.baidu.com/s/1hqmsHrY http://pan.baidu.com/s/1eQzTYtc http://pan.baid

如何在Linux启动时自动执行命令或脚本

我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟.当你注销或者关机时,也是这样. 更有意思的是,在系统启动以及用户登录或注销时,还可以让系统执行特定的操作. 本文,我们将探讨一下在 Linux 操作系统中实现这些目标的传统方法. 注意:我们假定使用的是 Bash 作为登录及注销的主 Shell.如果你使用的是其他 Shell,那么有些方法可能会无效.如果有其他的疑问

如何在 Linux 启动时自动执行命令或脚本

在启动时执行 Linux 脚本 有两种传统的方法可以实现在启动时执行命令或脚本: 方法 #1 - 使用 cron 任务 除了常用格式(分 / 时 / 日 / 月 / 周)外,cron 调度器还支持 @reboot 指令.这个指令后面的参数是脚本(启动时要执行的那个脚本)的绝对路径. 然而,这种方法需要注意两点: a) cron 守护进程必须处于运行状态(通常情况下都会运行),同时 b) 脚本或 crontab 文件必须包含需要的环境变量(如果有的话,参考 StackOverflow 获取更多详细

linux 自动定时备份文件夹及备份脚本实例

服务器:阿里云 需求:对www目录,每天凌晨1点执行备份,以当天日期命名文件夹 在 alidata 文件夹里建立 wwwbak 目录 和 bakwww.sh 文件,操作如下: 新建 wwwbak 文件夹,执行如下命令:  # mkdir wwwbak# chmod -R 777 wwwbak 再新建 bakwww.sh 的文件,执行如下命令 # vi bakwww.sh 文件内容如下:cp -af /alidata/www/ /alidata/wwwbak/$(date -d "today&qu

Linux下非交互式远程执行命令脚本

  Linux下非交互式远程执行命令脚本(比ssh更好的方式) openssh在每台机器上都有,ssh与scp经常出现在我们的生活中. 然而当要管理的机器规模越来越大时,ssh登陆到目标机器进行管理就变得不现实了. 虽然可以直接在ssh后面接命令的方式,进行命令的执行. 但是ssh的严格的权限认证使得我们不得不输入密码,或是建立信任关系,很难去自定义一个特定的认证方式. 基于ssh的这种不足.于是笔者就写了一个jetfire,这个工具.比ssh多的一个重要的功能就是可以自定义认证方式,顺便避免了

使用Python实现对Linux服务器CPU内存网络的监控脚本

本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写.Python 是由 Guido van Rossum 开发的.可免费获得的.非常高级的解释型语言.其语法简单易懂,而其面向对象的语义功能强大(但又灵活).Python 可以广泛使用并具有高度的可移植性.本文 Linux 服务器是 Ubuntu 12.10, Python 版本 是 2.7 .如果是 Python 3.0 版本的语法上有一定的出入.另外这里笔者所说的 Python 是 CPython

如何通过Linux命令行使用和运行PHP脚本_php实例

下面通过图文并茂的方式给大家分享下通过Linux命令使用和运行PHP脚本. PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor",它是个递归首字母缩写.它是一个跨平台脚本语言,深受C.C++和Java的影响. 在 Linux 命令行中运行 PHP 代码 PHP的语法和C.Java以及带有一些PHP特性的Perl变成语言中的语法十分相似,它当下大约正被

一个Linux中用于监控的简易shell脚本

系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个shell脚本给大家,用来自动化完成系统管理员所要完成的常规任务,这可能在多数情况下,尤其是对于新手而言十分有用,他们能通过该脚本获取到大多数的他们想要的信息,包括系统.网络.用户.负载.内存.主机.内部IP.外部IP.开机时间等. 我们已经注意并进行了格式化输出(在一定程度上哦).此脚本不包含任何恶意内