えくすとらんのブログ: できた?!jigen2py

できた?!jigen2py

昨日の機能にシャットダウン機能を追加しました

#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
import datetime
import time
import sys, select
import subprocess as sp

#今日を取得
today = datetime.date.today()
print(today)
print("実行日を更新しますか?(y or notuch is run):  ")
#インプット選択10秒間キー入力がなければマイナス一日
i, o, e = select.select( [sys.stdin], [], [], 10 )

if (i):
    print("input", sys.stdin.readline().strip())
    a = "y"
else:
    print("notuch key")
    a = "n"
if a == "y":
    global b
    global f
    b = input("何日後に設定しますか?:  ")
    print("実行日まであと{}日です".format(b))
    f = open('jigensave.txt','w')
    f.write(b)
    f.close()

elif a == "n":
    f = open('jigensave.txt')
    for b in f:
        b = int(b) - 1
        print("実行まであと{}日です".format(b))
        f = open('jigensave.txt','w')
        f.write(str(b))
        f.close()

#実行日を決定
future = today + datetime.timedelta(days=int(b))
#実行日から30日を取得(継続期間)

dur = future  +   datetime.timedelta(days=30)
#継続期間表示
for i in range((dur - future).days + 1):
    jikkou = future + datetime.timedelta(days = i)
    if today < jikkou:
        print(str(jikkou) + ":実行予定です")
    elif today > jikkou:
        print(str(jikkou) + ":過去へ戻ることはできません")
    elif today == jikkou:
        print("実行しました")
       #シェルコマンドを実行
        cmd = "ls "
        sp.call( cmd, shell=True  )
print("実行日でなければ5秒後にソフトをキルします")
#起動後5時間後にPCをシャットダウン
cmd2 = "shutdown -h +300"
sp.call( cmd2, shell=True  )
time.sleep(5)



これを一応デスクトップに置いているので

デスクトップエントリーに記述

[Desktop Entry]
Name=jigen2py
Exec=lxterminal -e python3.7 /home/xtoran/Desktop/jigen2.py
Type=Application

を/home/ユーザー名/.config/autostart
にjigen2py.desktopで保存(権限注意)

この設定ではスクリプト起動後5時間後にパソコンがシャットダウンします

えくすとらんの場合はbiostimer設定によって朝5時15分に
ブートしスクリプト初回手動起動30日後にコマンド実行の設定、
キー入力がなければ5時間後にシャットダウン・次の朝
オートでブート。スクリプト起動でキー入力なければ
29日後にコマンド実行と、コマンド実行日をマイナスしていきます
一応これでできたかなぁ^^
倉庫にpyファイルと記述済みデスクトップエントリーをいれておきました

0 件のコメント:

コメントを投稿

 久しぶりの更新です 備忘録 使っているarchlinuxにnvidiaのドライバを入れたところドライバがあっていなかったのかxが起動せずこれをアンインストールしたがその後xf86-video-nouveauが入っているにもかかわらずxが起動しなくなったのでarchwikiにて調...