Как узнать причину, команда/код выполнялась на Linux?

В конечном счете мы пошли с наличием .bash_profile выполненный screen если и только если переменная $SSH_CONNECTION был установлен. Это означает, что случай нормальной эксплуатации (регистрирующийся на пути ssh) получает экран (и мы можем работать вокруг этого путем определения bash --noprofile как команда для работы входа в систему), и для консольных соединений мы просто получаем очередную сессию.

Конечно, если мы поливаем из шланга вещи, так или иначе таким образом, что экран выполняется на каждом входе в систему, мы все еще политы из шланга. Но нет никакого способа сделать это совершенно надежным.

4
28.03.2014, 08:23
2 ответа
[115136]Ответ Chris' сработает, если процесс долго проработал, и у вас есть время, чтобы его осмотреть, но если это короткосрочная команда, ее может быть трудно поймать, пока процесс еще жив.[12175]Другой способ, к которому вы могли бы подойти, это наложить "обертку" вокруг программы. [12176]Допустим, вызываемая программа имеет вид [115813]/usr/bin/someprog[115814].[12177]Переместите [116022]/usr/bin/someprog[116023] в [116024]/usr/bin/someprog.orig[116025].[12178]Создайте [116026]/usr/bin/someprog[116027] в качестве скрипта типа: [12179] [12180] А затем [116028] chmod a+x /usr/bin/someprog[12181] Это свалит дерево процессов и поместит его в [115821]/tmp/someprog.log[115822]. Затем вы можете посмотреть на дерево и найти, что его порождает[115149].
3
27.01.2020, 20:52
[115023]Похоже, вы ищете родительский PID (PPID):

#!/bin/bash
for i in {2..70}
do
   echo Doing track number $i...
   ./HandBrakeCLI -t $i -i /Volumes/MX1-0N-NW1_DES --preset iPad -o X-Men_Vol1_Disk1_Title$i.mp4
done
Поскольку вы также упомянули, что у вас есть [115649]/proc[115650]:

3
27.01.2020, 20:52

Теги

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