[解決済み] systemd サービス 203/EXEC の失敗 (そのようなファイルやディレクトリがない) を修正する。
質問
毎日午前0時にbashスクリプトを実行するために、シンプルなsystemdタイマーをセットアップしようとしています。
systemctl --user status backup.service
が失敗し、以下のようなログが出力されます。
backup.service: Failed at step EXEC spawning /home/user/.scripts/backup.sh: No such file or directory.
backup.service: Main process exited, code=exited, status=203/EXEC
Failed to start backup.
backup.service: Unit entered failed state.
backup.service: Failed with result 'exit-code'.
ファイルやディレクトリが存在するので、迷ってしまいます。スクリプトは実行可能で、念のためパーミッションも777に設定してあります。
背景を少し。
は
backup.timer
と
backup.service
ユニットファイルは
/home/user/.config/systemd/user
.
backup.timer
はロードされてアクティブになり、現在深夜に待機しています。
こんな感じです。
[Unit]
Description=Runs backup at 0000
[Timer]
OnCalendar=daily
Unit=backup.service
[Install]
WantedBy=multi-user.target
ここで
backup.service
:
[Unit]
Description=backup
[Service]
Type=oneshot
ExecStart=/home/user/.scripts/backup.sh
[Install]
WantedBy=multi-user.target
そして最後に、これは言い換えで
backup.sh
:
#!/usr/env/bin bash
rsync -a --delete --quiet /home/user/directory/ /mnt/drive/directory-backup/
自分で実行してもスクリプトは正常に動作します。
重要かどうかは分かりませんが、私は
fish
をシェルとして使用します(.bashrcから起動します)。
参考になればと思い、スクリプトの全文を掲載させていただきます。
解決方法は?
答えがわかったような気がします。
の中に
.service
を追加する必要がありました。
/bin/bash
をスクリプトのパスの前に記述してください。
例えば、backup.serviceの場合。
ExecStart=/bin/bash /home/user/.scripts/backup.sh
とは対照的です。
ExecStart=/home/user/.scripts/backup.sh
理由はよくわからない。おそらく
fish
. 一方、メールのために別のスクリプトを動かしているのですが、サービスファイルは
/bin/bash
. しかし
default.target
代わりに
multi-user.target
が、しかし。
私が目にしたチュートリアルのほとんどは、このように前置詞に
/bin/bash
が、その後、私は
このSOの回答には、それがありました。
ということで、やってみる価値はあると思いました。
サービスファイルはスクリプトを実行し、タイマは
systemctl --user list-timers
ということで、うまくいくといいのですが。
更新:現在、すべてが動作していることを確認できました。
関連
-
[解決済み】Bashのif条件で「unary operator expected」エラーが発生する。
-
[解決済み] (standard_in) 1: bash スクリプトのシンタックスエラー
-
[解決済み] スクリプトからのエラーメッセージを含むすべての端末出力をログファイルにパイプする方法
-
[解決済み] Bash/Terminalで複数行の環境変数を書き出す方法 例: RSA秘密鍵
-
[解決済み] cshスクリプトをbashでソースして環境を設定する方法 [終了しました]。
-
[解決済み] bashスクリプトで変数の束縛を解除
-
[解決済み] findコマンドと一緒に使用するとエラー 'rm: missing operand' が発生する。
-
[解決済み] AWS CLIのプロファイルを一時的に切り替えるには?
-
[解決済み] Bash - "fi ;;" の使い方は?
-
[解決済み] bashの"-ne "はどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ambiguous redirect」エラーが発生する
-
[解決済み】ログアウトと再ログインをせずに.bashrcの設定を再読み込みする方法?
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] Homebrewは最新ですが、`could not link` + `delete path` のエラーは気にしなくていいのでしょうか?
-
[解決済み] configureコマンドが見つからない cygwin
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] nohupプロセスを終了させる方法を教えてください。
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み】node.jsアプリをバックグラウンドサービスとして実行するにはどうすればいいですか?