2016-01-18 3 views
0

Я в ситуации, когда я хочу убить процесс, если существует & перезапустить то же самое. Как это сделать?Как убить (если процесс существует) и перезапустить процесс в одной командной строке

В настоящее время я делаю это

killall -9 inetd && /bin/inetd 

Если Inetd не работает, я получаю эту

killall: /bin/inetd: no process killed 

Даже хотя INETD не работает я хочу выше команду, чтобы быть успешным.

+0

использовать ';' для команд последовательности, а не '&&', которые являются условными. –

+0

, но если какая-то проблема случится с killall, она продолжит работу с/bin/inetd. Я не хочу, чтобы это произошло. я хочу, чтобы он был успешным, даже если конкретный процесс не найден. –

+0

Вы сказали, что хотите запустить 'inetd', даже если' killall' не работает, не так ли? Поэтому ';' будет делать это, так как обе команды будут запущены ... Чего вы действительно хотите? –

ответ

0

Использование;

killall -9 inetd; /bin/inetd 
+0

, но если какая-то проблема случится с killall, она продолжит работу с/bin/inetd. Я не хочу, чтобы это произошло. я хочу, чтобы он был успешным, даже если конкретный процесс не найден. –

+0

Это невозможно: «killall возвращает нулевой код возврата, если хотя бы один процесс был убит для каждой указанной команды, или никаких команд не было указано, и по крайней мере один процесс соответствовал критериям поиска -u и -Z. Killall возвращает не- ноль в противном случае ". – tbsalling