Проверьте, была ли запущена программа/скрипт при запуске?

Проверьте, была ли запущена программа/скрипт при запуске?

В Linux есть много файлов, которые мы можем изменить, чтобы добавить программу, запускаемую при запуске (/etc/rc.local, bashrc, bash_profile, $HOME/.config/autostart, ...) ? Теперь у меня обратный вопрос: у меня есть программа, могу ли я проверить, была ли эта программа запущена при запуске?

**Примечание: программа может быть запущена один раз при запуске и выходе.

решение1

Вы можете посмотреть навремя доступадля скрипта. Это не на 100% надежно (так как некоторые файловые системы могут иметь noatimeset). Но это обычно полезно для init-скриптов, например,

find /etc -type f -atime -1

Я нашел это полезным длякакое-то время.

решение2

pstreeпредоставит вам подробный вывод запущенного процесса в древовидном формате.

Пример вывода здесь

init─┬─auditd───{auditd} ├─crond ├─docker─┬─10*[bash] │ ├─docker───5*[{docker}] │ ├─docker───4*[{docker}] │ ├─2*[docker───3*[{docker}]] │ ├─start-app.sh─┬─java───40*[{java}] │ │ └─tail │ ├─start-app.sh─┬─java───81*[{java}] │ │ └─tail

решение3

Вы можете выполнить следующую команду:

ps aux | grep PROCESS_NAME

Например ping, для процесса результат будет следующим:

user  9639  0.0  0.0   6508   732 pts/16   S+   08:44   0:00 ping 192.168.0.1
user  9641  0.0  0.1  12972  2420 pts/15   R+   08:44   0:00 grep --colour=auto ping

Если вы видите только вторую строку, это означает, что процесс не запущен.

Если вы подозреваете, что процесс дает сбой, вы можете использовать atop, вы можете найти другой вопрос оatop здесь.

решение4

Я бы посмотрел на места инициализации и посмотрел, настроена ли там программа для запуска.

Честно говоря, если бы программа каким-то образоммогзапускается, но вы не знаете, запустилась она или нет, единственный шанс узнать, запустилась ли она, — это либо проверить, была ли у нее возможность запуска (например, была ли она зарегистрирована в каком-то файле local.rcили что-то в этом роде), либо проверить результаты (например, программа всегда обращается к файлу /home/someuser/a, и ничто другое не должно было к нему обращаться).

Вышеизложенное предполагает, что у вас нет никаких журналов.

Связанный контент