/usr/share/wallpapers
랩톱을 다시 시작할 때마다 unsplash에서 임의의 사진을 얻고 싶습니다 .
이 서비스를 작성하려는 첫 번째 시도는 다음과 같습니다.
[Unit]
Description=Fetch random picture from unsplash
After=network-online.target
[Service]
User=root
Type=idle
ExecStart=/home/nicolas/.local/bin/fetch_unsplash_1920x1080
[Install]
WantedBy=network-online.target
활성화하고 재부팅했는데 다음과 같은 이유로 실패했습니다.
déc. 19 13:21:24 localhost.localdomain systemd[1]: Started Fetch random picture from unsplash.
déc. 19 13:21:24 localhost.localdomain systemd[1728]: fetch_unsplash.service: Failed to execute command: Permission denied
déc. 19 13:21:24 localhost.localdomain systemd[1728]: fetch_unsplash.service: Failed at step EXEC spawning /home/nicolas/.local/bin/fetch_unsplash_1920x1080: Permission denied
déc. 19 13:21:24 localhost.localdomain systemd[1]: fetch_unsplash.service: Main process exited, code=exited, status=203/EXEC
déc. 19 13:21:24 localhost.localdomain systemd[1]: fetch_unsplash.service: Failed with result 'exit-code'.
~
스크립트 경로가 정확하고 실행 권한이 있습니다.
코드(및 향후 개선을 위한 기반)는 다음과 같습니다.
#!/usr/bin/bash
location="$1"
if [ -z "$location" ]
then
location="/usr/share/wallpapers"
fi
name="random_unsplash_1920x1080.jpg"
wget -q "https://picsum.photos/1920/1080/?random" --output-document "$location/$name"
그렇다면 작동하지 않는 것은 무엇입니까?
이는 또한 두 가지 질문을 불러일으킵니다. 서비스에 쓰기 권한을 어떻게 부여합니까 /usr/share/wallpapers
? 노트북이 실제로 인터넷에 연결되어 있을 때만 서비스를 시작하려면 어떻게 해야 하나요?(이렇게 하는 것이 맞나요?)