我在 Synology NAS 上的调度程序中运行了一个脚本。我该如何取消它?我在菜单上没有看到取消选项。
答案1
如果您完全不知道如何找到脚本 PID,因为您不知道要搜索什么...在任务设置中,您可以保存输出并指定输出文件夹!在此文件夹中,您可以看到您的任务名称,在子文件夹中是任务的标识符,这个随机*?*数字字符串可以轻松地与 ps aux | grep XXXXXXXXXX 一起使用来查找 PID
例子:
Haldi@NAS:~$ ps aux | grep 1571863198
Haldi 12675 0.0 0.0 23128 972 pts/3 S+ 23:07 0:00 grep --color=auto 1571863198
root 26976 0.0 0.0 18056 1532 ? S 22:39 0:00 sh -c '/volume1/PUBLIC/Dateien/NASStuff/CPU_Temp_Influx/1571863198/script.log' > '/volume1/PUBLIC/Dateien/NASStuff/CPU_Temp_Influx/1571863198/output.log' 2>&1
root 26977 0.0 0.0 18092 1236 ? S 22:39 0:00 sh -c '/volume1/PUBLIC/Dateien/NASStuff/CPU_Temp_Influx/1571863198/script.log' > '/volume1/PUBLIC/Dateien/NASStuff/CPU_Temp_Influx/1571863198/output.log' 2>&1
Haldi@NAS:~$ kill -15 26976
答案2
ssh
将其转换为root
:ssh root@<myNASaddress>
。top
使用或查找 PIDps aux
:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 13748 0.0 0.3 28248 1888 ? S<s 00:05 0:00 synoscgi
您需要通过查看
COMMAND
列来识别任务,然后获取列中的数字PID
。我不知道您的情况中名称是什么,您必须通过查找有意义的名称并考虑其他可用信息(例如运行方式、时间等)COMMAND
来找出正确的行。USER
START
kill -15 <PID>
:例如kill -15 13748
。此命令要求进程终止,可能以干净的方式终止。如果这还不够,请执行kill -9 <PID>
,这将终止进程。
更新在 OP 评论之后:
如果您正在寻找一种真正简单的方法,关闭或重新启动设备肯定可以解决问题。此解决方案的优点是适用于大量程序和操作系统。
答案3
无需 root 权限,您可以:
通过 SSH 检查完整进程名称:ps aux | grep somethingyouneed
例如: ps aux | grep lifx
根 22189 58.1 6.6 57552 16560 ? S < l 12:24 0:04单声道
Synology 控制面板 => 任务计划程序 => 创建 => 计划任务 => 用户定义脚本
- 常规 => 用户 = root
任务设置 => 用户定义脚本 = pkill -2 -f “NAME”
NAME = 步骤 1 中的值
- 手动或按计划运行任务
答案4
SSH 是一种方法,如果您不想这样做(或者没有启用 SSH 终端访问),还有一种更简单的方法。
- 打开资源监视器并找到您的任务并记下它的 PID。
- 创建一个名为“用火杀死某物”的触发式禁用任务
- 将脚本设置为以 root 身份运行
- 在脚本主体中输入“kill”
- 保存脚本,退出,右键单击并手动运行脚本。
我将这个脚本保留在那里,处于禁用状态,因为它比通过 SSH 进入 NAS 更容易。