43468
**[リンク先内容](https://ja.stackoverflow.com/questions/43456/centos7-%E3%81%A8-uwsgi-%E3%81%A7-hello-
world)で、uWSGIをCentOS7 のサービスから起動すると、「バイナリファイルを実行できません」と表示されます**  
・ExecStartがおかしいと思うのですが、どう書き直せば良いでしょうか？

* * *

**/etc/systemd/system/uwsgi.service**  
・sourceの後ろは、「which uwsgi」結果が「/usr/bin/uwsgi」だったので、それを書きました

```

    [Unit]
    Description=uWSGI
    After=syslog.target
    
    [Service]
    ExecStart=/bin/bash -c 'source /usr/bin/uwsgi; uwsgi --ini /var/www/中略/hoge/hoge.ini'
    Restart=always
    KillSignal=SIGQUIT
    Type=notify
    StandardError=syslog
    NotifyAccess=all
    
    [Install]
    WantedBy=multi-user.target
    
```

* * *

**起動自体には成功**  
・していると思うのですが…

> $ systemctl start uwsgi

* * *

**画面表示**

An error occurred.

* * *

> # systemctl status uwsgi.service
```

    ● uwsgi.service - uWSGI
       Loaded: loaded (/etc/systemd/system/uwsgi.service; disabled; vendor preset: disabled)
       Active: active (running) since 日付
     Main PID: 735 (bash)
       Status: "uWSGI is ready"
       CGroup: /system.slice/uwsgi.service
               ├─735 /bin/bash -c source /usr/bin/uwsgi; uwsgi --ini /var/www/中略/hoge/hoge.ini
               └─736 uwsgi --ini /var/www/中略/hoge/hoge.ini
    
    systemd[1]: Starting uWSGI...
    bash[735]: /bin/bash: 0 行: source: /usr/bin/uwsgi: バイナリファイルを実行できません
    bash[735]: [uWSGI] getting INI configuration from /var/www/中略/hoge/hoge.ini
    systemd[1]: Started uWSGI.
    Hint: Some lines were ellipsized, use -l to show in full.
    
```
CC BY-SA 3.0
2018-04-22T04:26:45.400
43466
2018-05-19T09:39:15.120
2018-05-19T09:39:15.120
3060
7886
question
python centos nginx uwsgi
CentOS7 におけるサービス経由でのuWSGI起動について
`source`コマンドは **テキスト**
で記述された設定(ファイル)を読み取り、シェルに反映させるコマンドです。`/usr/bin/uwsgi`は実行ファイルでしょうから、このファイルに対して`source`することが誤りだと思います。

uWSGIのドキュメントにも記述例がありますが、実行ファイルをフルパスで指定し、引数に`ini`ファイルを渡しているだけのようです(`source`コマンドは使っていない)。

[Systemd — uWSGI 2.0 documentation](http://uwsgi-
docs.readthedocs.io/en/latest/Systemd.html)

```

    [Unit]
    Description=uWSGI Emperor
    After=syslog.target
    
    [Service]
    ExecStart=/root/uwsgi/uwsgi --ini /etc/uwsgi/emperor.ini
    # Requires systemd version 211 or newer
    RuntimeDirectory=uwsgi
    Restart=always
    KillSignal=SIGQUIT
    Type=notify
    StandardError=syslog
    NotifyAccess=all
    
    [Install]
    WantedBy=multi-user.target
    
```
CC BY-SA 3.0
2018-04-22T04:42:01.870
43468
2018-04-22T04:42:01.870
3060
43466
answer