Bash не добавляет одинарные кавычки к вашей строке. Одиночные кавычки делают вывод трассировки set -x
визуально однозначным. В bash set -x
производит визуально однозначный вывод, заключая в одинарные кавычки строки, содержащие специальные символы оболочки (пробелы и ! "# $ & \ () *; <>? [\] ^ `{|} ~
). Здесь вы отслеживаете команду, которая принимает параметр, содержащий "
, поэтому bash выводит его в одинарные кавычки, чтобы было ясно, что "
- это буквальный символ в строке, а не что-то в синтаксисе исходного кода оболочки.
Похоже, вы не хотели, чтобы в аргументе была двойная кавычка . Так что не надо» t поместите единицу.
Вам действительно нужны двойные кавычки вокруг расширений переменных, но это двойные кавычки в синтаксисе оболочки, а не заключать двойные кавычки в кавычки, чтобы символ двойной кавычки заканчивался в строке.
"./gem5/build/$ARCHI/$TARGET" gem5/configs/example/se.py -c "./$PROGRAM" -o "$ARGUMENT"
Добавьте Restart = always
в служебный модуль, поэтому systemd продолжит запускать службу в случае сбоя.
Кстати, вы должны использовать OnUnitInactiveSec
вместо OnUnitActiveSec
.
OnUnitInactiveSec = 10 секунд
(или 20 секунд) запустит службу через 10 секунд после ее остановки. Таким образом вы убедитесь, что он не вызывается дважды, и, возможно, избежите бана за DOSing google
Asegúrese de establecer la precisión en segundos, así:
AccuracySec=1min
Según los documentos:
AccuracySec= Specify the accuracy the timer shall elapse with. Defaults to 1min. Source: https://www.freedesktop.org/software/systemd/man/systemd.timer.html#Description
Haga esto en su archivo.timer.
He luchado con esto durante bastante tiempo.