Я написал сценарий питона, который напоминает мне открыть WhatsApp Web всякий раз, когда открывается браузер Chrome. Чтобы запускать этот скрипт каждый раз, я должен использовать терминал, чтобы запустить скрипт python. Я хочу, чтобы сценарий запускался автоматически через 15-20 минут после запуска системы.Как создать скрипт python за 15 минут после запуска системы?
Вот мой код:
import webbrowser
import os
import signal
import tkMessageBox
from subprocess import check_output
from crontab import CronTab
def get_pid(name):
return int(check_output(["pidof","-s",name]))
'''Script to open whatsapp web whenever chrome is opened'''
cron=CronTab()
job=cron.new(command='/usr/bin/echo')
job.minute.during(1,50).every(1)
name="chrome"
if (get_pid(name)):
webbrowser.open('http://web.whatsapp.com')
tkMessageBox.showinfo(title="Greetings", message="Connect your phone to chrome to open whatsapp!")
Я пытался редактировать кронтаб, но это оказалось не очень полезным. Есть ли способ сделать это?
Редактировать-1 Вот мой обновленный код, и он все еще не работает. Когда я запускаю скрипт вручную, он работает, но в противном случае (при перезагрузке).
#!/usr/bin/env python
import webbrowser
import os
import signal
import tkMessageBox
from subprocess import check_output
import time
def get_pid(name):
return int(check_output(["pidof","-s",name]))
'''Script to open whatsapp web whenever chrome is opened'''
name="chrome"
while(1):
time.sleep(600)
while(get_pid(name)):
webbrowser.open('http://web.whatsapp.com')
tkMessageBox.showinfo(title="Greetings", message="Connect your phone to chrome to open whatsapp!")
print "Hey"
Помимо этого, я добавил следующие строки в кронтаб:
@reboot /usr/bin/python /path/to/whatsapp.py &
Кроме того, я сделал .conf файл, который выглядит следующим образом:
start on runlevel [2345]
stop on runlevel [!2345]
exec /path/to/whatsapp.py
И самая последняя файл журнала для этого выглядит так:
SyntaxError: invalid syntax
Traceback (most recent call last):
File "/path/to/whatsapp.py", line 17, in <module>
while(get_pid(name)):
File "/path/to/whatsapp.py", line 10, in get_pid
return int(check_output(["pidof","-s",name]))
File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['pidof', '-s', 'chrome']' returned non-zero exit status 1
Traceback (most recent call last):
File "/path/to/whatsapp.py", line 20, in <module>
tkMessageBox.showinfo(title="Greetings", message="Connect your phone to chrome to open whatsapp!")
File "/usr/lib/python2.7/lib-tk/tkMessageBox.py", line 83, in showinfo
return _show(title, message, INFO, OK, **options)
File "/usr/lib/python2.7/lib-tk/tkMessageBox.py", line 72, in _show
res = Message(**options).show()
File "/usr/lib/python2.7/lib-tk/tkCommonDialog.py", line 44, in show
w = Frame(self.master)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2537, in __init__
Widget.__init__(self, master, 'frame', cnf, {}, extra)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2049, in __init__
BaseWidget._setup(self, master, cnf)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2024, in _setup
_default_root = Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1767, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
где путь/to - это, очевидно, путь к скрипту.
Ознакомьтесь с анахроническим демонами 'atd'. Запустите выполнение при загрузке с задержкой в 15 минут. –