Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: bash. как узнать какой процесс запускает скрипт?  (Прочитано 2076 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Настроил год назад установку разрешения в Ubuntu десктоп 14.04 LTS и забыл.
Надо повторить на другой машине. а вспомнить не могу как делал!
нашел в домашней папке скрипт

cat screen.sh
xrandr --newmode "1920x1080_60"  148.5  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync
xrandr --addmode VGA-0 1920x1080_60
#xrandr --output VGA-0 --mode 1920x1080_60

а кто его запускает понять не могу. перерыл
rc.local
rcX.d
/etc/default/grub
/etc/grub.d

не нашел!!! как так?
как что написать теперь с screen.sh
чтобы он выдал, кто его запускает?
пробовал
BASEDIR=$(readlink -e "$0")
if [ $? -ne 0 ] ; then
  echo -e "Script path get error." >/home/user/scrres
  exit 1
fi
BASEDIR="${BASEDIR%/*}"
echo "${BASEDIR}" >/home/user/scrres
exit 0

выдает только папу где screen.sh сам лежит

пробовал туда же добавить (в screen.sh)

lsof |grep screen >outscr

не грузится толком , говорит ошибка конфигурации и только через консоль пришлось эту строчку из файла удалять.

Как узнать кто запускает файл?

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
crontab -l ;
grep -Il 'screen.sh' /etc/xdg/autostart/* ~/.config/autostart/* ~/.{{bash,xsession}rc,profile}
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
crontab -l ;
grep -Il 'screen.sh' /etc/xdg/autostart/* ~/.config/autostart/* ~/.{{bash,xsession}rc,profile}

не найдено ничего. да про кронтаб я забыл но там пусто и по рутом и под юзером
 ~/.config/autostart ~/.xsessionrc нет таких.

может чего то вписать в screen.sh чтобы вычислить какая .... его запускает?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Настроил год назад установку разрешения в Ubuntu десктоп 14.04 LTS и забыл.
В автозагрузке (гуи) нет?

не найдено ничего
Тогда по очереди в системных папках (/etc, /root) и домашней ($HOME) ищи:
sudo grep -rI 'screen\.sh' папка
как что написать теперь с screen.sh
чтобы он выдал, кто его запускает?
Ну узнаеш ты пид, имя процесса который запустил, но тебе это врядли поможет найти где прописан скрипт.

lsof "$(readlink -en "${0}")" > '/path/to/dir/who_run_this_script.txt'
Какие файлы открыты процессом использующим скрипт:
lsof -p "$(lsof -t "$(readlink -en "${0}")")" > '/path/to/dir/opened_files.txt'
« Последнее редактирование: 08 Апреля 2017, 23:41:10 от renzrv »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
echo "xclock &" >> ~/.xprofile
sudo reboot
Wars ~.o

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
lsof "$(readlink -en "${0}")" > '/path/to/dir/who_run_this_script.txt'
хотел уже было сказать что lsof не срабатывал ранее (когда его в screen.sh пихал), но все таки добавил в screen.sh пару строк "lsof"

получил вот
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
sh      1196 root   10r   REG    8,7      275 5245101 /home/user/screen.sh

и вот
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
sh      1196 root  cwd    DIR    8,6     4096       2 /
sh      1196 root  rtd    DIR    8,6     4096       2 /
sh      1196 root  txt    REG    8,6   112204 2616354 /bin/dash
sh      1196 root  mem    REG    8,6  1754876 2624429 /lib/i386-linux-gnu/libc-2.19.so
sh      1196 root  mem    REG    8,6   134380 2624418 /lib/i386-linux-gnu/ld-2.19.so
sh      1196 root    0u   CHR    1,3      0t0    1051 /dev/null
sh      1196 root    1w   REG    8,6        0     372 /scrout2
sh      1196 root    2u   CHR  136,7      0t0      10 /dev/pts/7
sh      1196 root   10r   REG    8,7      275 5245101 /home/user/screen.sh
sh      1196 root   11u   CHR  136,7      0t0      10 /dev/pts/7

вроде ничего не дало действительно.
потом: В истории bash команд, когда я пытался вспомнить что я делал я видел,
что читал man 50-greeter-wrapper.conf

а сейчас G спросил screen.sh и наткнулся на эту статью

Нашел!! Отсюда запускается /usr/share/lightdm/lightdm.conf.d/50-greeter-wrapper.conf :)
главное дело смотрел /etc/lightdm - тишина. А оказывается конфы еще и в /usr/share могут быть.
надо иметь ввиду на будущее.

Всем спасибо, помогли освежить память :)

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Отсюда запускается /usr/share/lightdm/lightdm.conf.d/50-greeter-wrapper.conf
Вывод из всего: ещё один аргумент за то, что надо делать как положено, а не через одно место.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
за то, что надо делать как положено
да вроде логично с lightdm запускать, а вы бы где прописали?
а то у меня экран как то после захода в систему стал гаснуть на секунду (уже после того как прогрузился в 1920x1080 включился) и опять появляться. И это кстати происходит так же если я захожу в параметры системы.

 

Страница сгенерирована за 0.06 секунд. Запросов: 23.