我有一个监视目录(递归)的脚本,并在文件更改时执行命令。当使用监视标志时,这可以正常工作:
import datetime
import pandas as pd
import numpy as np
d = {'sku': ['RT-17']}
df_skus = pd.DataFrame(data=d)
print(df_skus)
d = {'date': ['2017/02/17', '2017/03/17', '2017/04/17', '2017/04/18', '2017/05/02'], 'item_sku': ['HT25', 'RT-17', 'HH30', 'RT-17', 'RT-19']}
df_orders = pd.DataFrame(data=d)
print(df_orders)
for i in df_orders.index:
print("\n toll")
df_orders.loc[i,'date']=pd.to_datetime(df_orders.loc[i, 'date'])
df_orders = df_orders[df_orders["item_sku"].isin(df_skus["sku"])]
monthly_sales = df_orders.groupby(["item_sku", pd.Grouper(key="date",freq="M")]).size()
monthly_sales = monthly_sales.unstack(0)
print(monthly_sales)
但是,我想在启动时和后台运行它,所以天真以为我可以将-m标志更改为-d(将inotifywait作为守护程序运行,并包含--outfile位置)然后将其添加到rc .local在启动时运行。我哪里错了?
答案 0 :(得分:2)
Incron是用于inotify事件的类似cron的守护进程。
只需要使用incrontab和任务的条目:
/path/to/directory IN_ALL_EVENTS /usr/local/bin/my-script $@ $# $%
/ local / bin / my-script 将是:
#! /bin/bash
local path=$1
local action=$2
local file=$3
if [ <perform a check> ]
then
my_command
fi
答案 1 :(得分:2)
嗯.... -d 它背景本身并输出 ONLY 到outfile,所以你的整个管道&amp;循环结构是没有实际意义的,它永远不会看到任何数据。
答案 2 :(得分:0)
您需要在&
/etc/rc.local
在命令末尾添加一个&
意味着 在后台运行此程序,以便用户仍可以输入。