我正在尝试在 QNAP TVS-871T 中设置后台作业。
它没有预安装 nohup。
我发现有多个参考资料可以将其安装在 QNAP 设备上(例如https://stackoverflow.com/questions/28623838/qnap-nas-nohup-no-such-file-or-directory),但这似乎并不适用于该设备;Web 界面中没有可用的此类包。
似乎是 Ubuntu 发行版的一个变体,但是其包管理器均不可用。
cat /proc/version
Linux version 3.12.6 (root@NasX86Builder) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #1 SMP Wed Jun 1 06:14:19 CST 2016
如果有任何区别的话,它运行的是 QTS 4.2。
任何想法?
答案1
包管理器不提供吗coreutils/nohup
?
http://blog.kiel.com.au/2012/04/installing-custom-packages-like.html
First you need to install ipkg - In the device's Administration interface, select the 'System Tools' -> 'QPKG' page, click on 'Get QPKG' button.
Once done login to your server via SSH and 'ipkg install sed' you can basically use this to install most packages that for linux.
在没有包管理的情况下,您必须安装二进制文件。
- 如果你够幸运的话,你就能知道 Ubuntu/Debian 的版本是什么最多与您的操作系统兼容,并
nohup
通过将其复制到您的路径(Ubuntu 16.04 上的 /usr/bin/nohup)来安装二进制文件。 - 如果由于某些共享库依赖问题或其他原因导致它无法运行,您可以为您的 QNAP 构建二进制文件它是静态链接的,因此它没有共享库依赖项。在 Debian/Ubuntu 上,它位于
coreutils
软件包中。
您很有可能会让它工作 - 它可能几乎没有依赖关系。请尝试上述步骤,如果它们不起作用,请在您的问题中发布详细信息,我们会再试一次。
我认为这意味着您可以从具有libc6
相同架构的另一个系统复制二进制文件(我认为对您来说是 x86_64)
$ readelf -d /usr/bin/nohup
Dynamic section at offset 0x6e28 contains 24 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000c (INIT) 0x401240
0x000000000000000d (FINI) 0x404dfc
0x0000000000000019 (INIT_ARRAY) 0x606e10
0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)
0x000000000000001a (FINI_ARRAY) 0x606e18
0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)
0x000000006ffffef5 (GNU_HASH) 0x400298
0x0000000000000005 (STRTAB) 0x4008f8
0x0000000000000006 (SYMTAB) 0x4002e0
0x000000000000000a (STRSZ) 659 (bytes)
0x000000000000000b (SYMENT) 24 (bytes)
0x0000000000000015 (DEBUG) 0x0
0x0000000000000003 (PLTGOT) 0x607000
0x0000000000000002 (PLTRELSZ) 1320 (bytes)
0x0000000000000014 (PLTREL) RELA
0x0000000000000017 (JMPREL) 0x400d18
0x0000000000000007 (RELA) 0x400c70
0x0000000000000008 (RELASZ) 168 (bytes)
0x0000000000000009 (RELAENT) 24 (bytes)
0x000000006ffffffe (VERNEED) 0x400c10
0x000000006fffffff (VERNEEDNUM) 1
0x000000006ffffff0 (VERSYM) 0x400b8c
0x0000000000000000 (NULL) 0x0
答案2
- 安装 entware-ng (
opkg
) 来自 QNAP 论坛
wget -O - http://entware.zyxmon.org/binaries/other/qnapware-to-entware-ng.sh | /bin/sh
- 使用 VIM 打开个人资料
vi /etc/profile
在 VIM 中:
- 按下
i
开始 VIM‘插入’ - 找到“PATH”
- 添加
/opt/bin
到$PATH
变量前/usr/bin
- 通过键入
:wq
并按来保存enter
- 按下
现在回到你的控制台,执行:
source /etc/profile
- 测试是否
opkg
有效:
opkg -h
- 更新
opkg
并安装coreutils
opkg update
opkg install coreutils
重启 NAS
跑步
nohup
nohup echo "QNAP makes everything too difficult, RIP."
nohup
注意:我不知道还有什么其他方法可以访问 opkg 安装的软件包,如果不重启,它就找不到。如果你知道解决方案,请告诉我,因为知道答案会很棒
答案3
为了补充@Sandwich 的答案,我需要安装coreutils-nohup
才能nohup
使用
opkg coreutils-nohup