...
Just my blog

Blog about everything, mostly about tech stuff I made. Here is the list of stuff I'm using at my blog. Feel free to ask me about implementations.

Soft I recommend
Py lib I recommend

I'm using these libraries so you can ask me about them.

python script as centos service

Task completed!py_vk I made a vkontakte Bot which delete all comments are not from group members! But I do not want to run it by cron, because it will SPAM all my system with cron emails. But I found resolution:

  • make a worker.py
  • allow worker to run delete scripts on time periods
  • add worker as centos service
  • have fun!

Maybe later I'll add more code, but now just for example I'll show only worker and bash script:

#!/usr/local/bin/python3
# coding=utf-8

from time import strftime, sleep
import schedule
from vk_del_comments import *
from vk_del_comments_older import *
import os

pid = os.getpid()
op = open("/var/us.pid","w")
op.write("%s" % pid)
op.close()

token = ''
tk_owner_id = "-000000000"
tk_group_id = "000000000"
tk_domain = "group_domain"

curr_date = strftime("%d-%m-%Y - %H:%M:%S")
logFile = 'comments_deleter_log.txt'

# print("Start Comments Bot Worker!")

def del_comments_30_sec():
    del_comments_regular(logFile, token, tk_owner_id, tk_group_id, tk_domain)

def del_comments_5_min():
    delete_comments_older(logFile, token, tk_owner_id, tk_group_id, tk_domain)


# schedule.every(30).seconds.do(del_regular_comments_19)
schedule.every(30).seconds.do(del_comments_30_sec)
schedule.every(5).minutes.do(del_comments_5_min)

while True:
    schedule.run_pending()
    sleep(1)

And bash to run this as service:

#!/bin/sh
# chkconfig: 123456 90 10
#
workdir=/var/www/python-lab/vkontakte_tools/comments_delete
 
start() {
    cd $workdir
    /usr/local/bin/python3 /var/www/python-lab/vkontakte_tools/comments_delete/worker_comments_delete.py &
    echo "Server started."
}
 
stop() {
    pid=`ps -ef | grep '[p]ython3 /var/www/python-lab/vkontakte_tools/comments_delete/worker_comments_delete.py' | awk '{ print $2 }'`
    echo $pid
    kill $pid
    sleep 2
    echo "Server killed."
}
 
case "$1" in
  start)
    start
    ;;
  stop)
    stop   
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: /etc/init.d/tornado-tts {start|stop|restart}"
    exit 1
esac
exit 0

Log: [caption id="" align="aligncenter" width="963"]vk_comments_del Log[/caption] and process: [caption id="" align="aligncenter" width="881"]vk_comments_del_ps process[/caption]   Based on: Run python as service: https://wolfpaulus.com/journal/software/pythonlauncher/ Schedule python: https://github.com/dbader/schedule Python 100% CPU: http://raspberrypi.stackexchange.com/questions/8077/how-can-i-lower-the-usage-of-cpu-for-this-python-program/8078