Вы должны использовать абсолютный путь с sudo
по соображениям безопасности:
( sudo /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server );
Проверьте вывод команды sudo -l
для подтверждения. Со страницы руководства sudoers
(1.7.x):
Cmnd_List
- это список из одного или нескольких имен команд, каталогов и других псевдонимов. Имя commandname
- это полное filename
которое может включать подстановочные знаки в стиле оболочки (см. Раздел «Подстановочные знаки» ниже).
sudo xargs
работает, потому что xargs
(почти наверняка) находится в надежном пути (/usr/bin
).
Также проверьте pgrep
и pkill
, это избавит вас от ненужной акробатики ps
pipe.
У вас есть вероятность утечки ресурсов и другого нежелательного поведения при безусловном kill -9
, см. Https://unix.stackexchange.com/questions/8916/why-not-kill-9-a-process .
Обновление, которое вы добавили, вы запускаете это через crontab пользователя root - root не нуждается в использовании sudo
, и в некоторых случаях root может не запускать sudo
, проверьте, что sudo -l
говорит, когда вы являетесь пользователем root. Если вы хотите иметь возможность запускать программу (которая не переключает свой собственный uid) в качестве определенного идентификатора пользователя, то обычно используется su - username -c "command"
.