/etc/rc.local无法在启动时启动脚本(supercollider)

时间:2016-10-27 15:15:01

标签: linux boot rc

Debian在基于arm的单板计算机(C.H.I.P.)上无头地运行,我在/etc/rc.local中有这个

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

source /usr/local/bin/gpio.sh
gpio_export CSID5
gpio_direction CSID5 out
gpio_output CSID5 1
gpio_export XIO_P1
gpio_direction XIO_P1 in
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
export DISPLAY=:0
cd /home/chip/Inhibition
now=$(date +"%m_%d_%Y")
date >> "log_$now.log"
jackd -P99 -dalsa -Phw:1 -p8192 -n3 -s -r44100 &
sleep 30
sclang main.scd >> "log_$now.log"
exit 0

以root身份运行脚本

/etc/rc.local

一切都按预期运行。

然而,当启动最后一个命令(sclang main.scd>>" log_ $ now.log")时,永远不会运行。 (sclang是supercollider的命令行解释器)。我确实尝试运行一些测试命令来查看启动插孔时执行是否停止但是这些命令是按预期执行的 - 它只是在启动时无法启动的supercollider。

任何想法?

PS我记得在运行Raspbian的Raspberry pi中以类似的方式设置它 - 现在无法确认,但我几乎可以肯定代码就是这样。

编辑

我尝试比较命令提示符(一旦启动)和rc.local中的shell环境(env1是命令shell,env2是rc.local shell):

diff env1 env2
1,2c1,4
< BASH=/bin/bash
< BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
---
> AP_EINT1=193
> AP_EINT3=35
> BASH=/bin/sh
> BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
4,5c6,7
< BASH_ARGC=()
< BASH_ARGV=()
---
> BASH_ARGC=([0]="1")
> BASH_ARGV=([0]="start")
7,8c9,10
< BASH_LINENO=()
< BASH_SOURCE=()
---
> BASH_LINENO=([0]="0")
> BASH_SOURCE=([0]="/etc/rc.local")
11c13,25
< COLUMNS=120
---
> CSICK=129
> CSID0=132
> CSID1=133
> CSID2=134
> CSID3=135
> CSID4=136
> CSID5=137
> CSID6=138
> CSID7=139
> CSIHSYNC=130
> CSIPCK=128
> CSIVSYNC=131
> DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
12a27
> DISPLAY=:0
13a29,30
> GPIO=1017
> GPIO_HASH=([TWI1_SCK]="47" [UART1_TX]="195" [LCD_D22]="118" [LCD_DE]="121" [LCD_D23]="119" [LCD_D20]="116" [LCD_D21]="117" [PWM0]="34" [CSICK]="129" [CSID3]="135" [LCD_D13]="109" [CSID2]="134" [LCD_D12]="108" [CSID1]="133" [LCD_D11]="107" [CSID0]="132" [LCD_D10]="106" [CSID7]="139" [CSID6]="138" [CSID5]="137" [LCD_D15]="111" [CSID4]="136" [LCD_D14]="110" [LCD_D19]="115" [LCD_D18]="114" [LCD_HSYNC]="122" [AP_EINT3]="35" [AP_EINT1]="193" [XIO_P3]="1019" [CSIHSYNC]="130" [LCD_CLK]="120" [XIO_P2]="1018" [XIO_P1]="1017" [TWI2_SCK]="49" [XIO_P0]="1016" [XIO_P7]="1023" [XIO_P6]="1022" [XIO_P5]="1021" [XIO_P4]="1020" [TWI1_SDA]="48" [UART1_RX]="196" [CSIVSYNC]="131" [LCD_D2]="98" [LCD_D3]="99" [LCD_D4]="100" [LCD_D5]="101" [LCD_D6]="102" [LCD_VSYNC]="123" [LCD_D7]="103" [TWI2_SDA]="50" [CSIPCK]="128" )
15,18d31
< HISTFILE=/root/.bash_history
< HISTFILESIZE=500
< HISTSIZE=500
< HOME=/root
21c34,35
< IFS=$' \t\n'
---
> IFS='  
> '
23,27c37,58
< LC_ALL=en_US.UTF-8
< LC_CTYPE=UTF-8
< LINES=32
< LOGNAME=root
< LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'
---
> LCD_CLK=120
> LCD_D10=106
> LCD_D11=107
> LCD_D12=108
> LCD_D13=109
> LCD_D14=110
> LCD_D15=111
> LCD_D18=114
> LCD_D19=115
> LCD_D2=98
> LCD_D20=116
> LCD_D21=117
> LCD_D22=118
> LCD_D23=119
> LCD_D3=99
> LCD_D4=100
> LCD_D5=101
> LCD_D6=102
> LCD_D7=103
> LCD_DE=121
> LCD_HSYNC=122
> LCD_VSYNC=123
29,30c60
< MAIL=/var/mail/root
< MAILCHECK=60
---
> OLDPWD=/
36,38c66,67
< PPID=489
< PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
< PS2='> '
---
> POSIXLY_CORRECT=y
> PPID=1
40a70
> PWM0=34
42c72
< SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
---
> SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
44,48c74,80
< SUDO_COMMAND=/bin/su
< SUDO_GID=1000
< SUDO_UID=1000
< SUDO_USER=chip
< TERM=xterm-256color
---
> TERM=dumb
> TWI1_SCK=47
> TWI1_SDA=48
> TWI2_SCK=49
> TWI2_SDA=50
> UART1_RX=196
> UART1_TX=195
50,53c82,94
< USER=root
< USERNAME=root
< XDG_SESSION_ID=c1
< _=clear
---
> XIO_BASE=1016
> XIO_BASE_FILE=/sys/class/gpio/gpiochip1016/base
> XIO_LABEL_FILE=/sys/class/gpio/gpiochip1016/label
> XIO_P0=1016
> XIO_P1=1017
> XIO_P2=1018
> XIO_P3=1019
> XIO_P4=1020
> XIO_P5=1021
> XIO_P6=1022
> XIO_P7=1023
> _=
> now=10_27_2016

我注意到的唯一奇怪的事情是/etc/rc.local将BASH设置为/ bin / sh而不是/ bin / bash - 我认为这可能是一个问题因为我确实更改了一些env变量所以我搬了我的脚本(从第一个导出和下面的文件)到一个run.sh文件(它自己再次正常工作)并将其添加到我的/etc/rc.local:

/bin/bash /home/chip/Inhibition/run.sh

不幸的是结果是一样的 - 杰克确实运行但之后没有sclang。

0 个答案:

没有答案