Saturday, December 6, 2014

Synology NAS - How to make a program run at startup

The other day I created a little node.js project to keep track of some finances. Synology has a node.js package but that just installs the tools - it has no 'container' or any other support to drop files and have it run automagically. Maybe one day.

In the meantime, you can start your project when you SSH into the NAS. My project has a 'www' script which bootstraps my project, so to start I simply type 'node bin/www' from the project directory. But, it only runs while I'm logged in, and if I log out for any reason, the process dies. That's hardly useful when I'm away from home, or on a different PC. So I decided to have a look at starting my project as a Linux service.

After doing a lot of research into how Synology does services, and a few failed attempts at init scripts, I found that Synology DSM (since version 5 perhaps) bundles Upstart, which is a neat little tool to deal with services on Linux. It's most prevalent on Debian and derivatives (notably Ubuntu). So, here's how I got my node.js application running on startup by using Upstart.

Step 1. Create an Upstart script.


Upstart scripts live in /etc/init by default, and that's also the place they live on your Synology NAS. You name the script 'servicename.conf', where 'servicename' is whatever you want it to be called. I called mine 'foobar' because I'm inventive like that, so the file is /etc/init/foobar.conf.

You can be as simple or as comprehensive as you like. I started by using a very simple script, like the one below.

Step 2. Start the service manually


The best part about keeping it simple is that you are more likely to get it running. If there is an error in your script, it won't start and it won't tell you why. It will just say the service could not be found.

To start the script, just type start foobar from the terminal. If it's happy, you'll see the process start and the PID displayed on the console. To stop it again, type 'stop foobar'.

Step 3. Check the script will auto-start


If you pass step 2 OK, then this is just a formality. The script will start when you restart your box. When ready type 'shutdown -r now' and allow your NAS to reboot. When it comes up again, you will be able to see that your service is running by hitting the URL, or by checking the logs which, by default, go to /var/log/upstart - all sysout from your process will go here.

26 comments:

  1. That was exactly what I was searching for, thanks!

    I didn't tried a reboot of my NAS, but the start command didn't worked with setuid, but worked with default, although it's bad (as you mentioned).

    Furthermore I run my scripts with foreverjs/forever, so they restart on script failure, too.

    ReplyDelete
  2. Synology deleted all my custom scripts from /etc/init after system update. :(

    ReplyDelete
  3. Synology deleted all my custom scripts from /etc/init after system update. :(

    ReplyDelete
  4. I cant add my script "Gitblit.sh" to /etc/init ..
    The permission denied with login admin user
    Please help on this

    ReplyDelete
    Replies
    1. login admin no good but root user

      Delete
    2. Hello Bagulia, Have you found how to launch gitblit at statup on your Synology?

      Delete
  5. This is just fantastic!! Worked wonderfully well, although I ran into an issue. I had a different user and group assigned to my folder with my server, so the /var/log/upstart/.log file always said the module could not be found. Had to use chown root:root and chmod 755 to make sure those files were accessible by the http user, then I was able to get the script to run. I even went so far as to move the files into a directory I created in /usr. Now my path to them is /usr/github/ and that works great.

    Thanks for posting this!

    ReplyDelete
  6. I made a script. start manually works fine. But the service does not start with synology. I need to manually set it every time after boot.

    ReplyDelete
  7. To survive an update startup scripts should be located in /usr/local/etc/rc.d and need to be init script format (a shell script that handles the start/stop commands). Different from the above conf format. The Synology 3rd party developer guide has a section on start up scripts (even if it's about creating packages, it's a useful document) https://global.download.synology.com/download/Document/DeveloperGuide/DSM_Developer_Guide.pdf

    ReplyDelete
  8. Hi
    I am desprately needing help. I have node.js version 8 installed on D213J running DMS6+. I have a my code installed in /volume1/web/GoogleHomeKodi. The I am running server.js. It works via SSH for node /volume1/web/GoogleHomeKodi/sever.js

    I have crated auto start script in /etc/init named kodi.conf

    based on above info what should I have in kodi.conf file?

    I tried to create a .conf file looking at yours but cannot figure out from your script "exec /usr/bin/node /volume2/code/foobar/bin/www" what terms "usr", "volume2", "code" are as these are not part of the path. Also is www.js file?


    ReplyDelete
  9. This comment has been removed by the author.

    ReplyDelete
  10. Untuk menjadi seorang yang bisa mengambil keputusan bertaruh dengan baik tentu memerlukan pengetahuan dan pengalaman yang banyak
    asikqq
    dewaqq
    sumoqq
    interqq
    pionpoker
    bandar ceme terpercaya
    hobiqq
    paito warna terlengkap
    bocoran sgp

    ReplyDelete
  11. Pretty useful while performing vm backups . Thanks for the guide!

    ReplyDelete
  12. I now own a business of my own with the help of Elegantloanfirm with a loan of $900,000.00 USD. at 2% rate charges, at first i taught with was all a joke until my loan request was  process under five working days and my requested funds was transfer to me. am now a proud owner of a large business with 15 staffs working under me. All thanks to the loan officer Russ Harry he is a God sent, you can contact them to improve your business on.. email-- Elegantloanfirm@hotmail.com.

    ReplyDelete
  13. HELLO, I am Rebecca Michaelson by name living in Europe. Here is a good news for those interested. There is away you can earn money without stress contact (THOMAS FREDDIE) for a blank [ATM CARD] today and be among the lucky once who are benefiting from this cards. This PROGRAMMED blank ATM card is capable of hacking into any ATM machine anywhere in the world. I got my master card from a good Hacker on the internet, with this ATM Card I am able to collect $5000 dollars every day via contacts:
    +1 (985)-465-8370 {thomasunlimitedhackers@gmail.com}
    I was very poor but this card have made me rich and happy, If you want to get this opportunity to become rich and establish your business then apply for this Master card, I am so happy about this because i got mine last week and I have used it to get $240,000.00 dollars from THOMAS FREDDIE UNLIMITED Hackers is giving out the card just to help the poor and needy and they ALSO OFFER FINANCIAL ASSISTANCE. get yours from THOMAS FREDDIE UNLIMITED HACKERS today. Kindly contact them by Email thomasunlimitedhackers@gmail.com

    Thank You and God bless

    ReplyDelete
  14. Bonjour,
    Nous sommes une équipe de crédit professionnelle Cyber Tech avec un grand cercle autour
    le monde infecté par plus de 3 millions de logiciels malveillants de débit et
    skimmers, nous obtenons une carte ATM vierge et les chargeons avec beaucoup d'argent
    rapidement et en toute sécurité, avec lequel on peut retirer des espèces soit en euros soit
    Franc suisse aux guichets automatiques et peut être utilisé par n'importe quel système de point de vente
    Remarque: nos cartes sont illégales mais croyez-moi, elles sont 100% sûres
    Contact : Kelvin Ericksson
    Courriel : blankatmmaster5555@gmail.com
    WhatsApp +3197005033695
    site Web : http://blankatmmaster5555.wixsite.com/
    Harkers

    ReplyDelete
  15. me and my husband are here to testify about how we use Oscar White black ATM card to make money and also have our own business today. Go get your blank ATM card today and be among the lucky ones. This PROGRAMMED blank ATM card is capable of hacking into any ATM machine,anywhere in the world.It has really changed our life for good and now we can say we are rich and we can never be poor again. You can withdraw the maximum of $5,000 daily and $140,000 a month, We can proudly say our business is doing fine and we have up to $20,000 000 (20 millions dollars in our account) Is not illegal,there is no risk of being caught ,because it has been programmed in such a way that it is not traceable,it also has a technique that makes it impossible for the CCTV to detect you..For details and cost on how to get yours today, email the hackers on : oscarwhitehackersworld@gmail.com ,Text & Call or Whats-app: +1(209)-643-1515

    ReplyDelete
  16. I want to share a testimony on how Mr Pedro loan offer helped my life,
    It isn't a good idea to use a payday loan on a regular basis. In the event that you endlessly prolong your repayment date and borrow often towards your subsequent paycheck, it could run you a good amount of money. However, it is just as sensible to decide on payday loans as they can be swiftly approved exactly the same day you put in your loan application form. You can contact Mr Pedro loan offer because my payday loan was very fast to proceed, email pedroloanss@gmail.com to request any kind of loan. Whatsapp +18632310632.... thank you.

    ReplyDelete
  17. HAVE YOU LOST YOUR MONEY TO BINARY OPTION SCAM OR ANY ONLINE SCAM WHATSOEVER?.DO YOUR DESIRE CREDIT REPAIR[EQUIFAX, EXPERIAN, TRANSUNION? WELL, YOU HAVE FOUND REDEMPTION.


    BEWARE OF FRAUDSTERS looking to hoax.
    if you have been a VICTIM, contactEmail:creditcards.creditscoreupgrade@gmail.com
    whatsapp:+1(437) 536-6082 for directives.
    Here, it's always a win for you.

    ��OUR SERVICES��
    ∆Binary Option funds recovery
    ∆Social media hack
    ∆Recovery of loan scam
    ∆Credit repair (Equifax,Experian,Transunion)
    ∆Email hack
    ∆College score upgrade
    ∆Android & iPhone Hack
    ∆Website design
    ∆Website hack
    ∆And lots more.
    We have specially programmed ATMs that can be used to withdraw money at ATMs, shops and points of sale. We sell these cards to all our customers and interested buyers all over the world, the cards have a withdrawal limit every week.

    CONTACT INFO:
    Email:creditcards.creditscoreupgrade@gmail.com
    whatsapp:+1(437) 536-6082
    Copyright ©️ 2022.

    ReplyDelete
  18. The Best Hacker In The World Contact Recovery Master

    My name is Kyla. Here's my recommendation:
    One of the best hackers out there are RecoveryMasters. They can fix your low credit scores, Recover Your Lost or stolen cryptocurrency, spy on your spouses to know if they are cheating, clear bad criminal records (database)…… Just name it any kind of hack you can think of they can break the code and get it done, they are reliable, trustworthy and they deliver right on time, the job they carried out for me was perfectly done and the best part of it all is your secrets are safe,,,,you can Visite RecoveryMasters or Contact them on Email: (Recoverymasters@email.cz) or whatsapp +1(551) 202-23-35 if you need help

    ReplyDelete
  19. Salut les gars!!! J'ai ma loyauté. Ma carte ATM vierge peut retirer 5 000 $ par jour. J'ai reçu cela de M. Georg mercredi dernier et j'ai maintenant 10 000 euros gratuits. La carte retire de l'argent à n'importe quel guichet automatique et n'a ni nom ni suivi et j'ai maintenant assez d'argent pour moi et mes 4 enfants. Je suis vraiment content d'avoir rencontré M. Georg car j'ai déjà rencontré deux personnes et ils ont pris mon argent sans savoir que c'était une arnaque. Mais maintenant je suis heureux. M. Georg a envoyé la carte via DHL et je l'ai reçue dans les deux jours. Achetez-en un maintenant. Écoutez, c'est distribué pour aider les gens, même si c'est illégal, mais ça aide beaucoup et personne ne se fait jamais prendre. La carte fonctionne dans tous les pays du monde. Dépêchez-vous et envoyez un e-mail via georgbednorzhackers@gmail. com SMS, appel ou WhatsAp : +1(262)355-8285 Les autres services proposés étaient : Clonage de cartes ATM
    Piratage de guichet automatique de carte Bitcoin avec un logiciel malveillant
    Récupérer la cryptomonnaie perdue ou volée
    Pirater les virements Western Union, les virements MoneyGram, les virements bancaires, les virements PayPal, les virements d'argent intégrés à l'application
    Récupérez les réseaux sociaux piratés : Facebook, Instagram, Snapchat, TikTok, Gmail, Yahoo mail et sites Web.

    ReplyDelete