By default, Synology NAS devices will index all media files (pictures, music, videos) and generate applicable thumbnails. When a new file is indexed, this kickstarts a process that asks the thumbnail generator to get to work generating various thumbnail sizes for a given file. A common complaint from Synology users is that they can’t tell if the thumbnail process is frozen. I myself was curious which exact file the conversion process was working on, so I found the means which I’ll explain here.
The background process that generates thumbnail images for Synology devices is the aptly named synomkthumbd, presumably for Synology Make Thumbnail Daemon. In Synology DiskStation Manager, this process is called Thumbnail Conversion.
Here I’ll detail how to connect to the Synology device via SSH to find out what files synomkthumbd is currently performing thumbnail conversion for.
Connecting Via SSH
This process assumes some familiarity with command-line tools like telnet. In Mac you merely need to open a terminal window, but in Windows you would have to third-party utility like PuTTY (because Microsoft’s Telnet solution does not support SSH protocol).
Update 08/2015: Windows 10 now includes SSH in PowerShell.
If, for whatever reason the Synology does not respond to the SSH request, make sure SSH is enabled by logging into the DiskStation Manager interface and navigating to Control Panel > Terminal & SNMP > Terminal.
You must be logged in as root or the final query will give you a “Permission Denied” error.
[code lang=”bash”]ssh root@[synology IP][/code]
At this point it may say something about an RSA key fingerprint (particularly if this is the first time you’ve ever connected via SSH) and ask if you’re sure you want to continue connecting. Just say yes. By default, the root password should be the same as your admin account.
Find Thumbnail Conversion Process ID
Every computer process always has a unique process ID (PID) associated with it for reference. This number will usually be different each time this process is started, so we can’t assume what the number will be. First we query the system to find out the Process ID of synomkthumbd
[code lang=”bash”]pidof synomkthumbd[/code]
It will answer with the PID which will simply be a number.
List File Descriptors
Next we list the file descriptors that are being used by that process using the ls command
[code lang=”bash”]ls -l /proc/[pid]/fd[/code]
This should output a list of (what appears to be) workers that generate the thumbnails. On my box I see three folders called 0, 1, and 2, which I believe act to generate thumbnails for multiple files at a time. Note that PID number will change each time a new synomkthumbd creates a new process, so if you get a “no such file or directory” error in this step, go back to the previous step and see if the PID has changed.
If, for whatever reason, it appears that the thumbnail conversion process has frozen, it can be stopped and restarted without restarting the entire Synology NAS this way:
[code lang=”bash”]/usr/syno/etc/rc.d/S77synomkthumbd.sh stop
The the same basic process is applicable to video thumbnail generation, except videos are generated by ffmpeg-thumb instead of synomkthumbd; there also appears to be folders 0 through 4 for that service.
Update: May 2015
It appears that the methods for starting and stopping the thumbnail conversion process that I described above are obsolete. (Thank you Peter). It previously worked as of DSM 5.1 but it was probably deprecated and since the 5.2 update they presumably got around to eliminating the old way.
Instead, Synology has added a central service management system, which you can call via SSH by running synoservicecfg.
If you feel the need to go down the rabbit hole, you can get a list of command arguments by running
[code lang=”bash”]synoservicecfg –help[/code]
Or you can simply get a list of services (which includes the synomkthumbd service) by using this command:
[code lang=”bash”]synoservicecfg –list[/code]
Armed with the name of the service you want to stop and start, the same synoservicecfg command can stop, start, or restart it.
[code lang=”bash”]synoservicecfg –stop synomkthumbd
synoservicecfg –start synomkthumbd
synoservicecfg –restart synomkthumbd[/code]