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

update_rule.server

  1. [Unit]
  2. Description = TinyScan update rule
  3. [Service]
  4. Type=forking
  5. WorkingDirectory=/root/TinyScan_Auto_Deploy/init_cve
  6. ExecStart=/root/TinyScan_Auto_Deploy/init_cve/start.sh start
  7. ExecStop=/root/TinyScan_Auto_Deploy/init_cve/start.sh stop
  8. ExecReload=/root/TinyScan_Auto_Deploy/init_cve/start.sh restart
  9. Restart=always
  10. [Install]
  11. WantedBy=multi-user.target

start.sh

  1. #!/bin/bash
  2. SERVICE_NAME="update-rule"
  3. #CONFIG_NETCARD_NAME=`cat /tinyscan/config/config.ini | grep -zo '\[config_net_card\]\sname=.*' | sed -n '2p' | awk -F '=' '{print $2}'`
  4. #SERVER_NETCARD_NAME=`cat /tinyscan/config/config.ini | grep -zo '\[net_card\]\sname=.*' | sed -n '2p' | awk -F '=' '{print $2}'`
  5. pid=`ps -ef | grep 'python3 /root/TinyScan_Auto_Deploy/init_cve/update_rule.py' | grep -v 'grep' | awk '{print $2}'`
  6. up()
  7. {
  8. # if [ ${CONFIG_NETCARD_NAME} != ${SERVER_NETCARD_NAME} ]; then
  9. # iptables -A INPUT -i ${SERVER_NETCARD_NAME} -p tcp --dport 1080 -j DROP
  10. # fi
  11. # source /tinyscan/config/venv/bin/activate
  12. python3 /root/TinyScan_Auto_Deploy/init_cve/update_rule.py &
  13. }
  14. down()
  15. {
  16. #if [ ${CONFIG_NETCARD_NAME} != ${SERVER_NETCARD_NAME} ]; then
  17. # iptable -D INPUT -i ${SERVER_NETCARD_NAME} -p tcp --dport 1080 -j DROP
  18. #fi
  19. kill ${pid}
  20. }
  21. if [ ! $1 ]; then
  22. echo "Please specify args 'start|restart|stop'"
  23. exit
  24. fi
  25. if [ $1 == 'start' ]; then
  26. if [ ! $pid ]; then
  27. up
  28. else
  29. echo "${SERVICE_NAME} is running! pid=$pid"
  30. fi
  31. fi
  32. if [ $1 == 'restart' ]; then
  33. if [ $pid ]; then
  34. down
  35. else
  36. sleep 3
  37. up
  38. fi
  39. fi
  40. if [ $1 == 'stop' ]; then
  41. if [ $pid ]; then
  42. down
  43. else
  44. echo "${SERVICE_NAME} is stopped"
  45. fi
  46. fi

update_rule.py是一个定时任务

  1. import os
  2. import schedule
  3. import time
  4. import datetime
  5. def job1():
  6. os.system('/root/TinyScan_Auto_Deploy/init_cve/sSnvd -u')
  7. if __name__ == '__main__':
  8. # schedule.every(10).seconds.do(job1)
  9. schedule.every().day.at('11:00').do(job1)
  10. while True:
  11. 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. 安装redhat6.10 出现的问题

    安装redhat6.10 操作系统不定时重启情况说明   曾出现报错如下: 在UEFI模式下安装RHEL6.10,安装完毕后系统第一次重启无法进入操作系统,同时屏幕上出现错误提示: Invalid m ...

  2. 图说论文《LSM-based Storage Techniques: A Survey》

    本文从 <LSM-based Storage Techniques: A Survey> 摘取部分图片,来介绍 LSM tree 的相关内容.详细内容请查看论文原文. in-place u ...

  3. ransac拟合

    链接:https://zhuanlan.zhihu.com/p/62238520 RANSAC简介 RANSAC(Random Sample Consensus,随机采样一致)算法是从一组含有&quo ...

  4. 0x05_My-OS显示字符串和任意参数

    先看看效果: 要解决两个问题,第一个如何显示字符串,printf?我之前已经说了所有的头文件都要自己写,printf是stdio里的可是我们没有stdio 我们要通过画像素点的方式显示字符串,有点像我 ...

  5. 搜索EE场景排序链路升级

    作者:京东零售 吕豪 背景 EE(Explore & Exploit)模块是搜索系统中改善生态.探索商品的重要链路,其目标是缓解数据马太效应导致模型对商品排序丰富性.探索性不足,带来的系统非最 ...

  6. c#反射优化

    https://www.cnblogs.com/xinaixia/p/5777886.html https://www.cnblogs.com/xinaixia/p/5777961.html

  7. asp汉字转拼音小写

    <%'//获取汉字的首字母 ,ANSII编码function getpychar(char) dim tmpp:tmpp=65536+asc(char) if(tmpp>=45217 an ...

  8. 测开-面试题-Java基础

    1 垃圾回收机制? 答: 一.手动垃圾回收机制(C/C++)手动:使用过的对象必须要程序员自己来回收 缺点: 1.若程序员忘记及时回收--对象会一直在内存中,若程序运行时间很长,内存中存在大量垃圾,空 ...

  9. JS的有关递归的知识点(数据无限级联的实现)

    所用测试数据: 1 const data = [ 2 { 3 "area_id": 5, 4 "name": "广东省", 5 " ...

  10. ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)

    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061) 报错原因:电脑之前有个5.0.2版本的mys ...