【強制ブロック】作業前にタスク整理しないと強制的にブラウザをサスペンドする機構
タスク整理をしなさい!(自戒)
常に作業する前はタスクを整理してから取り掛かるように心がけているはずが...
ここ最近タスク整理をしないどころか,タスク整理という行為そのものを忘れかけている
自発的に改善するというより,仕組みで解決したほうが良いだろうということで.
タスク整理を行わないと絶対にブラウザが起動しないようなPythonスクリプトを組んだ 仕組み
pidを監視して,タスク整理用のアプリケーションXが立ち上がっていない場合は,強制的にChromeにSIGSTOPシグナルを送りプロセスを一時的にサスペンドさせます.
アプリケーションXが立ち上がってくれたら,ChromeにSIGCONTを送り,プロセスをサスペンドから解除してあげます.
あとはこれをcronに登録すれば,毎日強制的にタスク整理できます :cry:
code:terminate.py
import psutil
import os
import signal
import time
def get_process_names():
def is_app_running(app_name):
def handle_process(browser_name, stop=True):
for process, info in get_process_names():
if browser_name.lower() in process.lower():
os.kill(info'pid', signal.SIGSTOP if stop else signal.SIGCONT) def main():
app_name = "Safari"
browser_name = "Google Chrome"
handle_process(browser_name.lower(),stop=True)
while not is_app_running(app_name.lower()):
time.sleep(1)
handle_process(browser_name.lower(),stop=False)
if __name__ == "__main__":
main()
tips
プロセス名を調べるには
アプリX起動
ps aux | grep Safari | awk '{print $NF}' > out
アプリX終了
ps aux | grep Safari | awk '{print $NF}' > out2
diff out out2