收藏文章 楼主

systemd 开机启动服务 配置脚本

版块:自动化运维linux   类型:普通   作者:小绿叶技术博客   查看:1223   回复:1   获赞:0   时间:2024-03-01 20:23:14


#!/bin/bash


os_release()
{

    if [ $USER = "root" ]
    then 
        sudoc=" "
        # 判断字符串的等号要加空格,否则无法判断
    else
        sudoc="sudo"
        echo "当前为普通用户,需要输入root 密码...  $sudoc"
        $sudoc date   ;
    fi

    xitong=` cat /etc/os-release  | grep -w ID | awk -F"=" '{print $2}' | sed "s/\"//g" `
    case "$xitong" in
        "centos" ) aptc="yum" ; dpkgc="rpm -qa " ; echo "当前是 centos 系统"   ;;
        "ubuntu" ) aptc="apt" ; dpkgc="dpkg -l " ; echo "当前是 ubuntu 系统"   ;;
    esac

    if [ ! -e /etc/init.d/mariadb1011 ]
    then
        sudo apt update ; 
        #sudo apt upgrade -y 
    fi

    $sudoc mkdir -p $downDir $installdir $www   
    $sudoc chmod 777 -R $downDir $installdir $www  
    
}

kaiji_web_service(){
# ubuntu  以 systemd 服务方式,自动启动服务软件 

   systemdDir="/usr/lib/systemd/system"
   webname="eisc_web_start.service"
   cd $systemdDir ; $sudoc touch $webname ; $sudoc chmod 777 $webname 
#----- 写入 start.service 服务 -----#
   echo "
[Unit] 
Description=start web
 
[Service]
Type=forking
ExecStart=/etc/init.d/shell/start.sh
ExecReload=/bin/kill -SIGHUP \$MAINPID
ExecStop=/bin/kill -SIGINT \$MAINPID

[Install] 
WantedBy=multi-user.target
   " > $webname

   $sudoc apt install dos2unix -y
   $sudoc dos2unix $webname
   # 转为 unix 格式,否则可能出现字符乱码

   $sudoc chmod 644 $webname
   $sudoc systemctl daemon-reload
   $sudoc systemctl disable $webname
   $sudoc systemctl enable $webname

cd 

}

kaiji_start_web_sh(){
 $sudoc mkdir -p /etc/init.d/shell/ ; $sudoc chmod 777 /etc/init.d/shell/ 


    if [ ! -e /etc/init.d/shell/openvpn_connect.sh ]
    then 
        wget eisc.cn/file/ubuntu/shell/server/openvpn_connect.sh -O /etc/init.d/shell/openvpn_connect.sh
	fi


read -p "是否继续进行配置 systemd 开机启动? y/n: " kaijisz
  if [ "$kaijisz" = "y" ]
  then
   kaiji_web_service
   # 启动这个函数
   $sudoc mkdir -p $installdir/shell ; $sudoc chmod 777 -R $installdir/shell

   # 将脚本授权给 root 用户

   echo "#!/bin/bash
    # bash 解释器 一定要在第一行 开头写,否则下面脚本不执行,开机启动不成功。 由于是 service服务,因此此脚本是 root 用户执行

    mount -t nfs -o rw,hard,intr 192.168.122.1:/datadisk/eisc /datadisk/eisc/ ; sleep 2
    # sudo chown -R mysql:mysql /datadisk/eisc/server/sqldata      # 数据库的数据,归属mysql 用户,否则无法启动mysql 
    /datadisk/eisc/server/nginx/nginx199/sbin/nginx &
    /datadisk/eisc/server/php/php743/sbin/php-fpm &
    /etc/init.d/mariadb1011 start &
    /bin/spawn-fcgi -f /usr/sbin/fcgiwrap -a 127.0.0.1 -p 10000 -F 32 -P /tmp/fastcgi-c.pid &
    sudo -u eisc /datadisk/eisc/server/gitea/gitea &
    #使用 sudo 指定 eisc  用户 运行该 git 仓库软件,root用户无法运行gitea

    touch $HOME/log_start_web.txt ; chmod 777 $HOME/log_start_web.txt
    echo "服务已经自动自动,时间 `date `" > $HOME/log_start_web.txt

   /etc/init.d/shell/openvpn_connect.sh &
      " > /etc/init.d/shell/start.sh
      

   echo "#----------------- 查看写入的开机启动脚本 -------------------#"
   cat /etc/init.d/shell/start.sh

   $sudoc chmod +x /etc/init.d/shell/*  $installdir/nginx/nginx199/sbin/nginx $installdir/php/php743/sbin/php-fpm $installdir/gitea/gitea
   $sudoc chown -R root:root /etc/init.d/shell/*  ; $sudoc chmod 777 -R /etc/init.d/shell/*

  else
    echo "[ok]目前不配置systemd "
  fi
}


main()
{
    os_release
    kaiji_start_web_sh
}
main



本文章最后由 admin2025-03-07 15:27 编辑

提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:systemd 开机启动服务 配置脚本

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息