Не найден аргумент в -exec [дубликат]

Если вам просто нужно запустить команду при загрузке, попытка создать реальную службу на самом деле не требуется . Самое простое — сбросить . /path/to/miner в /etc/rc.d/rc.local. Этот файл представляет собой сценарий, который запускается при каждой загрузке (и убедитесь, что rc.local является исполняемым), поэтому ваша команда будет выполняться при запуске сервера.

Однако, если вам нужно, чтобы он действительно обрабатывался как служба, лучший способ сделать это будет зависеть от того, используете ли вы CentOS 7 или 5/6.

редактировать: забыл упомянуть, это будет выполняться от имени пользователя root, поэтому, если вам нужно запустить его от имени пользователя без полномочий root, используйте вместо этого su - имя пользователя -c /путь/к/майнеру

0
26.02.2018, 18:29
2 ответа

Hay dos errores tipográficos en su comando.

  1. \{}debería ser{}

  2. El\␣(barra invertida+espacio )debe ser \;o ';'.

La opción/predicado -execde findnecesita saber dónde termina el comando que ejecuta. Se dice esto por el ;al final (que debe citarse para protegerlo del caparazón ).

No debería necesitar escapar o citar {}.

También puede haber algunos problemas con la precedencia. Básicamente dices

condition OR condition AND run-this-command

que es ambiguo. Sería mejor decir

(condition OR condition) AND run-this-command

Esto hace eso:

find. -type f '(' -name '*.avi' -o -name '*.mkv' ')' \
    -exec basename {} ';' > ~/Bash/test/rm/films.txt

También agregué -type fpara que solo se consideren los archivos normales.

4
28.01.2020, 02:14

Prueba esto en su lugar:

$ find. \( -name "*.avi" -o -name "*.mkv" \) -exec basename {} \; > ~/Bash/test/rm/films.txt
3
28.01.2020, 02:14

Теги

Похожие вопросы