web-dev-qa-db-fra.com

Existe-t-il un moyen d'utiliser des caractères génériques, une redirection ou une autre syntaxe de Shell avec des unités systemd?

J'ai un fichier systemd pour démarrer un fichier jar. Mais je veux exécuter le fichier jar en tant que *.jar. Y a-t-il un moyen de faire cela?

[Unit]
Description=Test Background

[Service]
ExecStart=/usr/bin/Java -jar /var/www/test.com/*.jar
Type=simple
WorkingDirectory=/var/www/test.com

[Install]
WantedBy=multi-user.target

J'ai essayé mais je ne travaillais pas.

2
Janith

De man 5 systemd.service (section "Lignes de commande"):

_This syntax is inspired by Shell syntax, but only the meta-characters and expansions
described in the following paragraphs are understood, and the expansion of variables is
different. Specifically, redirection using "<", "<<", ">", and ">>", pipes using "|",
running programs in the background using "&", and other elements of Shell syntax are not
supported.
_

Et:

_Note that Shell command lines are not directly supported. If Shell command lines are to be
used, they need to be passed explicitly to a Shell implementation of some kind. Example:

   ExecStart=/bin/sh -c 'dmesg | tac'
_

Les caractères génériques ne sont pas mentionnés comme étant pris en charge, vous devrez donc envelopper cette commande dans _/bin/sh -c_ ou _/bin/bash -c_ comme dans l'exemple ci-dessus.

3
muru