云服务器 nginx自启动、mysql自启动、pyhton后端自启动

nginx自启动

方法一:

1、建立启动文件

vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
 
[Install]
WantedBy=multi-user.target

2、检查常用命令

sudo systemctl daemon-reload 重新加载这个文件
sudo  systemctl disable nginx.service 关闭开机自启
sudo  systemctl enable nginx.service 开启开机自启
sudo  systemctl status nginx.service 查看状态
sudo  systemctl restart nginx.service 重启服务
sudo  systemctl list-units --type=service 查看所有服务

方法二(ubentu已成功)

1、建立启动文件

在/etc/init.d/下创建nginx文件,sudo vim /etc/init.d/nginx

#! /bin/bash
### BEGIN INIT INFO
# Provides:          XXX
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start XXX daemon at boot time
# Description:       Start XXX daemon at boot time
### END INIT INFO

#chkconfig:35 85 15

DAEMON=/usr/local/nginx/sbin
PID=/usr/local/nginx/logs/nginx.pid

case "$1" in
  start)
      echo "Starting nginx daemon..."
      $DAEMON && echo "SUCCESS"  #开启nginx
  ;;
  stop)
      echo "Stopping nginx daemon..."
      $DAEMON -s quit && echo "SUCCESS"  #从容的停止nginx
  ;;
  reload)
      echo "Reloading nginx daemon..."
      $DAEMON -s reload && echo "SUCCESS"  #平滑重启nginx
  ;;
  restart)
      echo "Restarting nginx daemon..."
      if [ ! -f "$PID" ]; then
	   ps -ef | grep nginx | awk 'NR<3{print "kill -9 "$2}' | sh
	   sleep 3
	   $DAEMON && echo "SUCCESS"                  #开启nginx
      else
	   $DAEMON -s quit                            #从容的停止nginx
	   sleep 3
     	   $DAEMON && echo "SUCCESS"                  #开启nginx
      fi
  ;;
  status)
      if [ ! -f "$PID" ]; then                  #因为nginx启动后会生成进程文件nginx.pid,这里通过判断进程文件是否存在,判断nginx是否启动
         echo "Nginx is not running..."
      else
         echo "Nginx is running..."
      fi
  ;;
  *)
      echo "Usage:service nginx (start|stop|restart|reload|status)"
      exit 2
  ;;
esac

2、开权限和更新文件


#设置服务脚本有执行权限
sudo chmod +x /etc/init.d/nginx
#注册服务
cd /etc/init.d/
sudo update-rc.d nginx defaults

重启服务器看是否自动启动。

sudo  systemctl status nginx.service 查看状态

mysql自启动

systemctl enable mysql.service 直接mysql自启动

如果不得参照以下操作:

在/lib/systemd/system/mysql.service建立文件。

sudo vim /lib/systemd/system/mysql.service
# MySQL systemd service file

[Unit]
Description=MySQL Community Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
User=mysql
Group=mysql
PIDFile=/run/mysqld/mysqld.pid
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld
TimeoutSec=infinity
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=10000

# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

自启动

# 重新加载服务
systemctl daemon-reload
# 设置开机自启动
systemctl enable mysql.service

重启看是否已经启动。

python后端程序自启动

常用指令



sudo chmod +x /root/xcxpy.sh 增加权限

sudo systemctl daemon-reload 更新文件
sudo systemctl enable xxx.service 开启自启动
sudo systemctl start xxx.service  开启文件

ps aux | grep python3 
kill -9 pip

1、给脚本增加权限

chmod +x xxx.py

2、在/etc/systemd/system/建立自启动文件xxx.service

[Unit]
Description=Auto Run Python Script
After=network.target

[Service]
ExecStart=/usr/bin/python3 /root/xxx.py  (py的绝对地址)
WorkingDirectory=/root   (文件目录)
StandardOutput=inherit
StandardError=inherit
Restart=always
User=username   (设置用户名)

[Install]
WantedBy=multi-user.target

3、启动服务

sudo systemctl enable xxx.service

4、重启查看程序是否启动

ps aux | grep python3 

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Systemd中,开机自启脚本通常称为“服务(service)”。下面是创建和启用服务的步骤: 1. 创建一个以 .service 结尾的文件,文件名可以自定义。该文件通常位于 /etc/systemd/system 目录下。 2. 在该文件中,定义服务的配置信息。以下是一个示例配置文件的内容: ``` [Unit] Description=My Service After=network.target [Service] Type=simple ExecStart=/path/to/my/script.sh Restart=always [Install] WantedBy=multi-user.target ``` 其中,各部分的含义如下: - `[Unit]`:服务单元的配置信息。 - `Description`:服务的描述信息。 - `After`:定义依赖关系,表示服务需要在 network.target 启动之后才启动。 - `[Service]`:服务的具体配置信息。 - `Type`:定义服务的类型,简单服务可以使用 simple。 - `ExecStart`:定义服务启动时执行的命令或脚本。 - `Restart`:定义服务是否在失败时自动重启。 - `[Install]`:定义服务的安装信息。 - `WantedBy`:定义服务在哪个 target 下启动。 3. 保存并退出配置文件,然后重新加载 systemd 配置文件: ``` $ sudo systemctl daemon-reload ``` 4. 启动并启用服务: ``` $ sudo systemctl start myservice.service $ sudo systemctl enable myservice.service ``` 其中,`myservice.service` 是你创建的服务文件的名称。 5. 检查服务状态: ``` $ sudo systemctl status myservice.service ``` 如果服务成功启动,你应该会看到类似于以下的输出: ``` ● myservice.service - My Service Loaded: loaded (/etc/systemd/system/myservice.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-10-07 09:23:53 EDT; 1s ago Main PID: 1234 (script.sh) Tasks: 1 (limit: 4915) Memory: 10.0M CGroup: /system.slice/myservice.service └─1234 /bin/bash /path/to/my/script.sh ``` 这说明服务已经在后台运行,并且已经设置为开机自启动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Single_minde

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值