/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"
それでは、うまくいかないのは何ですか?
これはまた2つの質問をもたらします。サービスに書き込み権限をどのように付与しますか/usr/share/wallpapers
?ラップトップが実際にインターネットに接続されている場合にのみサービスを開始するにはどうすればよいですか?