Raspbian(Debian GNU/Linux 11(bullseye))을 실행하는 장치에 시작 bash 스크립트를 추가했습니다.
이것은 내 스크립트입니다.
SysmacApp.sh
#!/bin/bash
mkdir -p /home/pi/App;
mkdir -p /home/pi/Shared/Service;
mkdir -p /home/pi/Shared/Service/Data;
mkdir -p /home/pi/Shared/Sysmac;
sudo mount -t cifs //10.10.0.1/SysmacApp /home/pi/App -o username=*****,password=*****
cp /home/pi/App/Service/* /home/pi/Shared/Service -r
cp /home/pi/App/Sysmac/* /home/pi/Shared/Sysmac -r
cp /home/pi/App/Shared/* /home/pi/Shared
sudo umount /home/pi/App
cd /home/pi/Shared/Service
dotnet ./SysmacService.dll &
sleep 2
cd /home/pi/Shared/Sysmac
dotnet ./SysmacUI.Skia.Gtk.dll &
그래서 기본적으로:
- 존재하지 않는 경우 일부 디렉터리를 만듭니다.
- 공유 폴더에서 두 응용 프로그램을 모두 복사합니다.
- 두 응용 프로그램을 모두 실행합니다.
장치 시작 시 응용 프로그램이 실행되기 때문에 스크립트가 실행되지만, 내가 하지 않는 한 정보는 복사되지 않습니다.이 스크립트를 터미널에서 수동으로 실행하세요..
스크립트를 실행하기 위해 /etc/xdg/autostart
폴더에 항목을 추가했습니다.
SysmacApp.desktop
[Desktop Entry]
Name=SysmacApp
Comment=Starts sysmac application
Exec=/home/pi/Shared/SysmacApp.sh
Terminal=true
Type=Application
Categories=Utility;Application;
원격으로 장치를 재부팅하면 애플리케이션이 실행되지만 공유 폴더에서 복사되지는 않습니다.
내가 뭘 잘못했나요?
터미널 창에서 실행하면 스크립트가 작동합니다.
로그 파일에서 다음을 얻었습니다.
Sep 15 14:21:07 raspberrypi kernel: [ 14.997131] FS-Cache: Netfs 'cifs' registered for caching
Sep 15 14:21:07 raspberrypi kernel: [ 15.008071] Key type cifs.spnego registered
Sep 15 14:21:07 raspberrypi kernel: [ 15.008110] Key type cifs.idmap registered
Sep 15 14:21:07 raspberrypi kernel: [ 15.010226] CIFS: No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3>Sep 15 14:21:07 raspberrypi kernel: [ 15.010253] CIFS: Attempting to mount \\10.10.0.1\SysmacApp
Sep 15 14:21:07 raspberrypi kernel: [ 15.010426] CIFS: VFS: Error connecting to socket. Aborting operation.
Sep 15 14:21:07 raspberrypi kernel: [ 15.010452] CIFS: VFS: cifs_mount failed w/return code = -101
-o _netdev
로그에는 볼륨 마운트를 시도한 후 eth0 경로가 추가되었음을 표시하므로 이를 마운트 명령에 추가했지만 성공하지 못했습니다.