写个服务,写完后放在/lib/systemd/system路径下

update_rule.server

[Unit]
Description = TinyScan update rule [Service]
Type=forking
WorkingDirectory=/root/TinyScan_Auto_Deploy/init_cve
ExecStart=/root/TinyScan_Auto_Deploy/init_cve/start.sh start
ExecStop=/root/TinyScan_Auto_Deploy/init_cve/start.sh stop
ExecReload=/root/TinyScan_Auto_Deploy/init_cve/start.sh restart
Restart=always [Install]
WantedBy=multi-user.target

start.sh

#!/bin/bash

SERVICE_NAME="update-rule"
#CONFIG_NETCARD_NAME=`cat /tinyscan/config/config.ini | grep -zo '\[config_net_card\]\sname=.*' | sed -n '2p' | awk -F '=' '{print $2}'`
#SERVER_NETCARD_NAME=`cat /tinyscan/config/config.ini | grep -zo '\[net_card\]\sname=.*' | sed -n '2p' | awk -F '=' '{print $2}'` pid=`ps -ef | grep 'python3 /root/TinyScan_Auto_Deploy/init_cve/update_rule.py' | grep -v 'grep' | awk '{print $2}'` up()
{
# if [ ${CONFIG_NETCARD_NAME} != ${SERVER_NETCARD_NAME} ]; then
# iptables -A INPUT -i ${SERVER_NETCARD_NAME} -p tcp --dport 1080 -j DROP
# fi
# source /tinyscan/config/venv/bin/activate
python3 /root/TinyScan_Auto_Deploy/init_cve/update_rule.py &
} down()
{
#if [ ${CONFIG_NETCARD_NAME} != ${SERVER_NETCARD_NAME} ]; then
# iptable -D INPUT -i ${SERVER_NETCARD_NAME} -p tcp --dport 1080 -j DROP
#fi
kill ${pid}
} if [ ! $1 ]; then
echo "Please specify args 'start|restart|stop'"
exit
fi if [ $1 == 'start' ]; then
if [ ! $pid ]; then
up
else
echo "${SERVICE_NAME} is running! pid=$pid"
fi
fi if [ $1 == 'restart' ]; then
if [ $pid ]; then
down
else
sleep 3
up
fi
fi if [ $1 == 'stop' ]; then
if [ $pid ]; then
down
else
echo "${SERVICE_NAME} is stopped"
fi
fi

update_rule.py是一个定时任务

import os

import schedule
import time
import datetime def job1():
os.system('/root/TinyScan_Auto_Deploy/init_cve/sSnvd -u') if __name__ == '__main__':
# schedule.every(10).seconds.do(job1)
schedule.every().day.at('11:00').do(job1)
while True:
schedule.run_pending()

当然单纯的定时任务可以利用crontab来搞定

crontab定时任务

cat /etc/crontab

crontab -e : 编辑定时任务(用户可以省略,默认是当前用户)

crontab -l : 查看定时任务(只查看当前用户的定时任务)

cat /var/log/cron : 可以查看到执行那些定时任务

cat /var/log/messages: 记录系统操作的日志,(例如:用户登录)

Linux环境下给python项目写个启停服务的更多相关文章

  1. Linux 环境下安装python相关

    目录 Linux 环境下安装python相关 linux软件包管理工具之yum工具(如同pip3工具) yum源理解 下载阿里云的.repo仓库文件 ,放到/etc/yum.repos.d/ yum安 ...

  2. 尚学python课程---11、linux环境下安装python注意

    尚学python课程---11.linux环境下安装python注意 一.总结 一句话总结: 准备安装依赖包:zlib.openssl:yum install zlib* openssl*:pytho ...

  3. 尚学linux课程---10、linux环境下安装python

    尚学linux课程---10.linux环境下安装python 一.总结 一句话总结: 直接在官网下载python的源码包即可,然后在linux下安装 linux下安装软件优先想到的的确是yum,但是 ...

  4. Linux环境下第一次提交项目

    Linux环境下第一次提交项目: vi 日记 新增一个文件名为“日记”的文件 git status 工作区的状态 git add 日记 建立跟踪 git commit 提交变更 ----------- ...

  5. linux环境下安装python 3

    说明: 在linux环境下,都默认安装python 2的环境,由于python3在python2的基础上升级较大,所以安装python 3环境用于使用最新的python 3的语法. 安装过程: 1.下 ...

  6. linux环境下的python安装过程

    一.下载python源码包 打开ubuntu下的shell终端,通过wget命令下载python源码包,如下图所示: wget https://www.python.org/ftp/python/3. ...

  7. linux环境下的python安装过程(含setuptools)

    这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...

  8. linux环境下安装python

    在linux系统中安装python解释器 打开官网www.python.org 选择合适的版本进行下载 将下载好的压缩包拖入Xshell中,依次输入一下命令即可 tar xf Python-.tar. ...

  9. [Python学习] Linux环境下的Python配置,必备库的安装配置

    1.默认Python安装情况 一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10. 使用命令:which python可以查看当前的py ...

  10. 在Linux环境中运行python 项目

    1首先创建一个虚拟环境或者在一个已有的虚拟环境中创建一个django项目 1.1 创建一个虚拟环境: mkvirtualenv my_django115 这会在 ~/Envs 中创建 my_djang ...

随机推荐

  1. js程序

    JavaScript 程序 计算机程序是由计算机"执行"的一系列"指令". 在编程语言中,这些编程指令被称为语句. JavaScript 程序就是一系列的编程语 ...

  2. Spring(Spring的静态工厂方法-动态工厂方法)

    Spring的工厂方法: IoC通过工厂模式创建bean对线有两种方式: 静态工厂模式 实例工厂模式 区别在与:静态工厂不需要实例化,实例工厂需要实例化 1.静态工厂 实体类Car package c ...

  3. Spring框架-IoC核心

    spring框架(spring全家桶) spring FrameWork springBoot+springCloud+springCloud Data Flow 一:spring的两大核心机制: I ...

  4. placeholder 颜色修改

    input::-webkit-input-placeholder{ color:#fff; } input::-moz-placeholder{ /* Mozilla Firefox 19+ */ c ...

  5. 简述cpu、gpu、fpga和asic四种人工智能芯片的性能

    https://fastonetech.com/newszblog/post/25570.html 简述cpu.gpu.fpga和asic四种人工智能芯片的性能FPGA(Field Programma ...

  6. ThreadLocal最终版本

    ThreadLocal工作原理 目录 ThreadLocal工作原理 一.官方文档描述 二.为什么使用ThreadLocal 2.1.案例 三.ThreadLocal和syncronized关键字区别 ...

  7. windows10 远程桌面黑屏

    [计算机配置]-[管理模板]-[Windows组件]-[远程桌面服务]-[远程桌面会话主机]-[远程会话环境]-{为远程桌面连接使用WDDM图形显示驱动程序-设置禁用}

  8. 微信小程序if for

    1.控制代码的显示隐藏 1.wx:if="{{}}"判断是否需要渲染代码 <view wx:if="{{tiaojian===1}}">显示1< ...

  9. JDK的版本有多少种,Java开发者应该选择哪一种?

    JDK的版本有多少种,Java开发者应该选择哪一种?先说结果,一般情况下,我们多数会选择OpenJDK或者AdoptOpenJDK的JDK实现,因为这是最精简最标准的版本,而且没有商业风险.另外,需要 ...

  10. 403. 青蛙过河 (Hard)

    问题描述 403. 青蛙过河 (Hard) 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子,但是不可以跳入水中. 给你石 ...