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-27 15:38:43

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

理解Linux系统/etc/init.d目录和/etc/rc.local脚本

本文英语版本来自:http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ 以下内容是作者自己的翻译版本,如需转载到CSDN外其他网站,请注明本文链接.  一.关于/etc/init.d 如果你使用过linux系统,那么你一定听说过init.d目录.这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要.init.d目录包含许多系统各种服务的启动和停止脚本.

理解Linux系统/etc/init.d目录和/etc/rc.local脚本(转载)

本文英语版本来自:http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ 以下内容是作者自己的翻译版本,如需转载到CSDN外其他网站,请注明本文链接.  一.关于/etc/init.d 如果你使用过Linux系统,那么你一定听说过init.d目录.这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要.init.d目录包含许多系统各种服务的启动和停止脚本.

Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法

开机不启动 在实际生产场景中,我们喜欢在安装了一些软件服务后,将软件设置为开机自启动,设置为开机自启动有两种方法: 1)  设置为chkconfig,可以编写脚本,查看设置开机自启动的命令 –add表示添加程序自启动, --list表示查看. 以后的程序如果需要使用chkconfig开机自启动,那么需要在启动程序中加入三行: # chkconfig:2345 20 80 #description: Saves and restores system entropy pool for \ #   

centos7 rc.local脚本执行不成功

腾讯云 centos7   配置文件/etc/rc.local的内容如下: #!/bin/sh #secu_agent init monitor, install at Thu Aug 3 11:19:41 CST 2017 /usr/local/sa/agent/init_check.sh > /dev/null 2>&1 /usr/sbin/ntpdate ntpupdate.tencentyun.com >/dev/null 2>&1 & /usr/l

Ubuntu 16.04设置rc.local开机启动命令/脚本的方法(通过update-rc.d管理Ubuntu开机启动程序/服务)

注意:rc.local脚本里面启动的用户默认为root权限. 一.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 scrip

Linux开机启动程序rc.local

目录 1./etc/rc.local是/etc/rc.d/rc.local的软链接 2.rc.local文件的原始内容 3.rc.local文件的配置 4.应用经验 5.版权声明 在CentOS7中,实现开机启动程序主要有两种方法: 1)把要启动的程序配置成自定义的系统服务,该方法我已经介绍过,请阅读:CentOS7添加自定义系统服务. 2)在/etc/rc.local脚本文件中编写启动程序的脚本,本文将详细介绍这种方法. 1./etc/rc.local是/etc/rc.d/rc.local的软

/etc/rc.local 与 /etc/init.d Linux 开机自动运行程序

1. /etc/rc.local 这是使用者自订开机启动程序,把需要开机自动运行的程序写在这个脚本里 --------引用---------------------- 在完成 run level 3 的服务启动后,如果我还有其他的动作想要完成时,举例来说, 我还想要寄一封 mail 给某个系统管理帐号,通知他,系统刚刚重新开机完毕,那么, 是否应该要制作一个 shell script 放置在 /etc/rc.d/init.d/ 里面,然后再以连结方式连结到 /etc/rc.d/rc3.d/ 里面

Linux中没有rc.local文件的解决方法

比较新的Linux发行版已经没有rc.local文件了.因为已经将其服务化了. 解决方法: 1.设置rc-local.service sudo vim /etc/systemd/system/rc-local.service [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start Tim

树莓派的rc.local文件(设置开机启动)

为了在树莓派启动的时候运行一个命令或程序,你需要将命令添加到rc.local文件中.这对于想要在树莓派接通电源后无需配置直接运行程序,或者不希望每次都手动启动程序的情况非常有用. 另一种替代定时任务的方法是使用cron和crontab. EDITING RC.LOCAL(编辑rc.local文件) 在你的树莓派上,选择一个文本编辑器编辑/etc/rc.local文件.你必须使用root权限编辑,例如: sudo vim /etc/rc.local 在注释后面添加命令,但是要保证exit 0这行代