Почему моя программа не вызывается в скрипте?

Я делаю программу (демон) и помещаю ее в скрипт, который будет вызываться при загрузке. Сценарий как ниже. Таким образом, моя программа не вызывается вообще. Потому что я проверил ps | grep myprogram, И, пожалуйста, обратите внимание, что сценарий read_something.sh не существует!

#!/bin/bash

modprobe some_driver
dmesg | grep BIOS > /bioslog

setsid /usr/bin/myprogram &
read_something.sh

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

#!/bin/bash

modprobe some_driver
dmesg | grep BIOS > /bioslog

read_something.sh
setsid /usr/bin/myprogram &

Зачем?

Подробнее: Мой скрипт вызывается автоматически через сервис systemd. Дело моей программы monitor может быть загружен.

root@tomxue--------:~# ps | grep monitor
  480 root     36288 S    /usr/bin/monitor
  984 root      7796 S    grep monitor
root@tomxue--------:~# cat /usr/bin/speaker_autoexe.sh 
#!/bin/bash

exec 2>/home/root/123.log; set -x

read_sn.sh
setsid /usr/bin/monitor &
root@tomxue--------:~# cat 123.log 
+ read_sn.sh
/usr/bin/speaker_autoexe.sh: line 5: read_sn.sh: command not found
+ setsid /usr/bin/monitor

В случае моей программы монитор не может быть загружен.

root@tomxue--------:~# ps | grep monitor
  769 root      7796 R    grep monitor
root@tomxue--------:~# cat /usr/bin/speaker_autoexe.sh 
#!/bin/bash

exec 2>/home/root/123.log; set -x

setsid /usr/bin/monitor &
read_sn.sh
root@tomxue--------:~# cat 123.log 
+ read_sn.sh
+ setsid /usr/bin/monitor
/usr/bin/speaker_autoexe.sh: line 6: read_sn.sh: command not found

0 ответов

Другие вопросы по тегам