我通常做的是暂停我的脚本,在后台运行它,然后像
那样取消它 for (_, data) in jsonResponse["data"].dictionaryValue{
if data["id"] != nil && data["name"] != nil{
let school = School(id: data["id"].int!, name: data["name"].string!)
self.arraySchools.append(school)
}
}
但是,我希望能够随时取消我的脚本。如果我有一个无限期运行的脚本,我希望能够在几小时或一天之后或者当我想要取消它时取消它。
答案 0 :(得分:0)
由于您遇到了一些麻烦,让我们看看我们是否可以为您保持简单。 (这假设您可以写入/tmp
,根据需要进行更改)。让我们在后台启动您的脚本,并创建一个包含其PID
进程的PID
文件。
$ ./script & echo $! > /tmp/scriptPID
您可以查看/tmp/scriptPID
$ cat /tmp/scriptPID
######
其中######
是正在运行的./script
进程的PID编号。您可以使用pidof script
进一步确认(将返回相同的######
)。您也可以使用ps aux | grep script
查看该号码。
当您准备好终止./script
进程时,只需将该号码(例如######
)传递给kill
即可。您可以直接使用以下方式执行此操作:
$ kill $(</tmp/scriptPID)
(或我的评论中列出的其他方法)
您可以添加rm /tmp/scriptPID
以在终止进程后删除pid文件。
仔细看看,如果您有任何其他问题,请告诉我。