pythonからatコマンドを使う
import subprocess command = "echo 'touch final.txt' | at now + 10min" proc = subprocess.Popen( command, shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE) stdout_data, stderr_data = proc.communicate()
subprocessの使い方がよくわからず,はまってしまいました.
proc.communication()は結果を取得するのが目的で,
subprocess.Popen()の時点でコマンドは実行されます.
やりたい事は現在のatリストをすべて削除して,1つだけ新しいものを挿入して,
その結果を取得します.
import subprocess command1 = """atq | awk '{print "at -d " $1}' | bash""" command2 = "echo 'touch final.txt' | at now + 10min" def exec_command(command): return subprocess.Popen( command, shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE) proc1 = exec_command(command1) proc2 = exec_command(command2) stdout_data, stderr_data = proc2.communicate() print stderr_data