質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

受付中

ラズパイでsystemdによりプログラムを自動起動したい。

nao99
nao99

総合スコア0

systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

1回答

0評価

2クリップ

2952閲覧

投稿2020/08/24 08:18

編集2022/01/12 10:55

【実現したいこと】
ラズパイ起動時に、pythonプログラムを自動起動したい。

【発生している問題】
ログで、cannot connect to X server とエラーが発生するが、対処方法が分からない。

pi@raspberrypi:~ $ sudo systemctl start autostart.service
pi@raspberrypi:~ $ sudo systemctl status autostart.service
● autostart.service - do something
Loaded: loaded (/etc/systemd/system/autostart.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2020-08-24 15:24:53 JST; 9s ago
Process: 2547 ExecStart=/home/pi/mause_xy.py (code=exited, status=1/FAILURE)
Main PID: 2547 (code=exited, status=1/FAILURE)

8月 24 15:24:52 raspberrypi systemd[1]: Started do something.
8月 24 15:24:53 raspberrypi mause_xy.py[2547]: : cannot connect to X server
8月 24 15:24:53 raspberrypi systemd[1]: autostart.service: Main process exited, code=exited, status=1/FAIL
8月 24 15:24:53 raspberrypi systemd[1]: autostart.service: Failed with result 'exit-code'.

【サービスファイル】
autostart.service

[Unit] Description=do something [Service] ExecStart=/home/pi/mause_xy.py [Install] WantedBy=multi-user.target

【やったこと】
ここに至る迄、いくつかのエラーが発生し、以下の対応を行った。
①permission error処置

cdmod 777 /home/pi/mause_xy.py

で、アクセス権を設定した。

②Exec format error
python ファイルの1行目に

#!/usr/bin/python3

を追記した。

③No such file or directory・・・・
改行コード修正のため、

sed -i 's/\r//' /home/pi/mause_xy.py

で修正を行った。

その結果、現在の状況となった。

ここまで来て進めなくなりました。

アドバイス宜しくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

yasutakatou
yasutakatou

2020/10/14 08:14 編集

コンソールからログインしてmouse_xy.pyを動作させると意図通り動くのですよね? であればX Server起動まで待たせるように変更してみては如何でしょうか。 [Unit]にAfter=graphical.targetを追記してみてください。 すみませんがこちらの記事にありますようにあらかじめXserverのサービス名を確認した方が良いです。 ディストリビューションごとに違う可能性がありえます https://qastack.jp/superuser/759759/writing-a-service-that-depends-on-xorg
nao99
nao99

2020/10/15 05:30

ご回答有難うございます。 [Unit]に、After=graphical.target を追記してみましたが、変化ありませんでした。 X serverのサービス名を調べたいのですが、graphical.target とは、GUI環境のこと、X serverはGUI環境ということでしょうか。調べ方もよくわかっていません。
yasutakatou
yasutakatou

2020/10/15 05:44

>コンソールからログインしてmouse_xy.pyを動作させると意図通り動くのですよね? これは確認済みですよね。であればX11は自動起動で動いているので systemctl get-default で確認したターゲットをAfter=に書けば良さそうです。 または.timerというファイルを作って、起動後一定時間経ったあとに動かすこともできそうです。 https://unix.stackexchange.com/questions/397853/how-to-set-a-systemd-unit-to-start-after-loading-the-desktop
nao99
nao99

2020/10/15 07:22

コンソールから、mouse_xy.pyの動作は問題なく動作します。 systemctl get-default で確認しましたら、graphical.target でした。 こちらでは動作しませんので、.timer ファイルを確認してみます。
yasutakatou
yasutakatou

2020/10/15 07:58

不思議ですね。。AfterなのでX11が起動するのを待ってから動作するので見つからないにはならないと 思うのですが、、となると環境変数でDISPLAYを設定するような箇所があってないのか。 みたいな話なのかなと思います。もし、.timerでうまくいかないのであればその線でさらに調査いたしますね!うまくいくといいですけど。。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。