How to install nohup on a QNAP TVS-871T

nohupqnap

I'm trying to setup a background job in a QNAP TVS-871T.

It doesn't come with nohup pre-installed.

I've found multiple references to install it on a QNAP device (e.g. https://stackoverflow.com/questions/28623838/qnap-nas-nohup-no-such-file-or-directory) but that doesn't seem to apply to this device; there is no such package available in the web interface.

Seems to be a variant of an Ubuntu distro but none of its package managers are available.

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

It's running QTS 4.2 if that makes any difference.

Any idea?

Best Answer

Does the package manager not provide 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.

In the absence of package management, you would have to install a binary.

  1. If you're lucky, you could figure out what Ubuntu/Debian version is most compatible with your OS and install the nohup binary by copying it into your path (/usr/bin/nohup on Ubuntu 16.04).
  2. If you have no such luck getting it to run due to some shared library dependency issue or whatever, you could build a binary for your QNAP that is statically linked so that it has no shared library dependencies. On Debian/Ubuntu it's in the coreutils package.

Chances are you'll get it working - it may have little or no dependencies. Try the above steps and if they don't work post the details in your question and we'll try again.

I think this means you will probably be OK to copy a binary over from another system with libc6 of the same architecture (x86_64 for you I think)

$ 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