Linux环境下给python项目写个启停服务
写个服务,写完后放在/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项目写个启停服务的更多相关文章
- Linux 环境下安装python相关
目录 Linux 环境下安装python相关 linux软件包管理工具之yum工具(如同pip3工具) yum源理解 下载阿里云的.repo仓库文件 ,放到/etc/yum.repos.d/ yum安 ...
- 尚学python课程---11、linux环境下安装python注意
尚学python课程---11.linux环境下安装python注意 一.总结 一句话总结: 准备安装依赖包:zlib.openssl:yum install zlib* openssl*:pytho ...
- 尚学linux课程---10、linux环境下安装python
尚学linux课程---10.linux环境下安装python 一.总结 一句话总结: 直接在官网下载python的源码包即可,然后在linux下安装 linux下安装软件优先想到的的确是yum,但是 ...
- Linux环境下第一次提交项目
Linux环境下第一次提交项目: vi 日记 新增一个文件名为“日记”的文件 git status 工作区的状态 git add 日记 建立跟踪 git commit 提交变更 ----------- ...
- linux环境下安装python 3
说明: 在linux环境下,都默认安装python 2的环境,由于python3在python2的基础上升级较大,所以安装python 3环境用于使用最新的python 3的语法. 安装过程: 1.下 ...
- linux环境下的python安装过程
一.下载python源码包 打开ubuntu下的shell终端,通过wget命令下载python源码包,如下图所示: wget https://www.python.org/ftp/python/3. ...
- linux环境下的python安装过程(含setuptools)
这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...
- linux环境下安装python
在linux系统中安装python解释器 打开官网www.python.org 选择合适的版本进行下载 将下载好的压缩包拖入Xshell中,依次输入一下命令即可 tar xf Python-.tar. ...
- [Python学习] Linux环境下的Python配置,必备库的安装配置
1.默认Python安装情况 一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10. 使用命令:which python可以查看当前的py ...
- 在Linux环境中运行python 项目
1首先创建一个虚拟环境或者在一个已有的虚拟环境中创建一个django项目 1.1 创建一个虚拟环境: mkvirtualenv my_django115 这会在 ~/Envs 中创建 my_djang ...
随机推荐
- Nodejs 使用 ZooKeeper 做服务发现
将单体服务拆分为微服务后,为了服务高可用,一般会做集群多实例.但在分布式下,怎么进行高效.便捷的进行服务访问问题,出现了各类服务注册和服务发现框架.这里使用的是Zookeeper.ZooKeeper ...
- 学习Java Day13
今天学习了对象与类,类是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例.类与类之间的关系有依赖,聚合,继承. 然后学习了如何构造对象.
- Mybatis的常用配置-多表关联查询
Mapper.xml常用配置 全局配置文件(数据库,事物管理,Mapper的注册.打印文件SQL.慢性加载.二级缓存) Mapper配置文件 (定义自定义接口的具体方案;SQL.数据库.数据库与POJ ...
- HNOI2019 最小圈
\(\text{Problem}\) 对于一张有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过 \(k\) 个节点,那么一个圈的平均值为圈上 \(k\) 条边权的和除以 \(k\),现要求其 ...
- OpenSCAD:一款用于创建实体3D CAD对象的软件
推荐:使用 NSDT场景设计器 快速搭建 3D场景. 原文链接:https://www.mvrlink.com/openscad/ OpenSCAD是一个用于创建实体3D CAD对象的软件.它是免费软 ...
- 一个ASP中的Base64加密 解密函数代码
<% OPTION EXPLICIT const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu ...
- 第二周作业N67044-张铭扬
1. 运行脚本可以显示出本机的ip地址 2. 如果ip地址中有3这个数字,那么就打印出当前的系统时间 3. 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, .. ...
- 洛谷 P6021 洪水
题意 给定一棵有 \(n\) 个结点的树,点有点权:一共有 \(m\) 次操作,每次操作包括以下两种: 在一个点的子树中删去一些结点,使得该子树中所有叶结点与该子树的根结点不连通,并且使删去的点的点权 ...
- Beautiful Soup库的安装
安装:'以管理员身份运行'cmd 执行pip install beautifulsoup4 Beautiful Soup库的理解: 解析.遍历.维护标签树的功能库 那么何为标签树? 1 from bs ...
- js提取字符串开头公共部分
需求: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 思路:记录数组中第一个字符串的每个字符,依次判断数组中的每个字符串是否都有这个字符 ...