[systemd-devel] systemd + ExecStart + python script

Abdelghani Ouchabane abdelghani at ezono.com
Mon Nov 18 08:56:47 PST 2013


On 12/11/13 18:40, Zbigniew Jędrzejewski-Szmek wrote:
> On Tue, Nov 12, 2013 at 06:14:30PM +0100, Abdelghani Ouchabane wrote:
>> On 11/11/13 17:32, Zbigniew Jędrzejewski-Szmek wrote:
>>> On Mon, Nov 11, 2013 at 04:55:05PM +0100, Abdelghani Ouchabane wrote:
>>>> ExecStart=/usr/bin/python /opt/cyclades/bin/t_idl.pyo
>>>>             |-1377 /bin/sh -c if [ ! -e
>>>> /home/x/taskconfig/screensaver ]; then /bin/mkdir -p
>>>> /home/x/taskconfig ;                        /bin/cp
>>>> /opt/cyclades/etc/taskconfig/screensaver
>>>> /home/x/taskconfig/screensaver ;                        fi ;
>>>> /bin/echo -n $BASHPID > /var/tmp/cyclades_services/IDL/pid ;
>>>> DISPLAY=:0 CYCLADES_ERR=IDL /opt/cyclades/bin/logger.sh -c
>>>> "/usr/bin/python /opt/cyclades/bin/t_idl.pyo" -p err -t IDL
>>> Those two don't correspond. Either you're starting the program
>>> directly, or through some shell scripts. It would help if you
>>> showed the two unit files.
>>>
>>> Zbyszek
>>>
>>>
>> Hallo Zbyszek,
>>    I modified the unit to start the main program as:
>>
>> 1- ExecStart=/bin/sh -c 'DISPLAY=:0 /usr/bin/python
>> /opt/cyclades/bin/t_idl.pyo'
> Try something simpler:
>
> Environment=DISPLAY=:0
> ExecStart=/usr/bin/python /opt/cyclades/bin/t_idl.pyo
>
> Anyway, it seems that the script either exits (maybe some error?) or
> daemonizes itself.  If it's not failing to start with an error, you
> probably need to change (starting from the snippet I put above) to
> Type=forking, or make the script not exit.
>
> Zbyszek
Hi Zbyszek,
   thanks a lot for your great help, the problem was in 
ezono-cyclades-t_idl.path, it contained the following:

[Unit]
Description=ezono-cyclades-t_idl Service Spool

[Path]
PathChanged=/tmp/cyclades/restart-t_idl
PathExists=/tmp/cyclades/start-ezono-cyclades-gui

[Install]
WantedBy=ezono-cyclades.target



And /tmp/cyclades/start-ezono-cyclades-gui is created during the boot 
but /tmp/cyclades/restart-t_idl is never created, this was making the 
ezono-cyclades-t_idl.service keeps restarting, after I removed 
"PathChanged=/tmp/cyclades/restart-t_idl", the behavior becomes correct. 
>From my understanding I can combine PathChanged & PathExists but it did 
not work for me.

Regards
Abdelghani



More information about the systemd-devel mailing list